SceDeci4pDbgp: Difference between revisions
Jump to navigation
Jump to search
CelesteBlue (talk | contribs) No edit summary |
|||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
DECI4P Debug process. | |||
Some functionality provided by this module seems to have been merged into [[SceUlobjMgr]] between FW 0.945 and 0.990.030. | |||
== Module == | == Module == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version | ! Version !! World !! Privilege | ||
|- | |- | ||
| 3. | | 0.940.I-3.730.011 || Non-secure || Kernel | ||
|} | |} | ||
Line 17: | Line 20: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
| 1. | | 0.940.I-0.996.090 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || User || 0xFBD04C34 | ||
|- | |||
| 1.000.041-3.730.011 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || Kernel || 0xFBD04C34 | |||
|- | |- | ||
| 3. | | 2.500.071-3.730.011 || [[SceDeci4pDbgp#SceDeci4pDbgp|SceDeci4pDbgp]] || Non-secure || User || 0x40286FC4 | ||
|} | |} | ||
== Types == | |||
<source lang="C"> | |||
/** | |||
@brief Breakpoint handler (signature for FWs 0.990.030-0.995) | |||
@param[in] pid - UID of the process that hit the breakpoint | |||
@param[in] thid - UID of the thread that hit the breakpoint | |||
@param[in] bkpt_addr - Address of the breakpoint opcode | |||
@param[in] excp_ctx - Pointer to exception context (breakpoints trigger a PABT) | |||
@param[in] cpsr - Value of the CPSR when breakpoint was hit | |||
@param[in] arm_opcode - Opcode of the ARM instruction that triggered breakpoint (reversed endianness) | |||
@param[in] thumb_opcode - Opcode of the Thumb instruction that triggered breakpoint (reversed endianness) | |||
@param[in] is_thumb - 1 if CPU ran in Thumb mode when breakpoint was hit, 0 otherwise | |||
*/ | |||
typedef SceInt32 (SceDbgpBreakpointHandler)(ScePID pid, SceUID thid, ScePVoid bkpt_addr, SceExcpmgrExceptionContext* excp_ctx, SceUInt32 spsr, SceUInt32 arm_opcode, SceUInt16 thumb_opcode, SceBool is_thumb); | |||
/** | |||
@brief Breakpoint handler (signature for FWs >= 3.60) | |||
@param[in] pid - UID of the process that hit the breakpoint | |||
@param[in] thid - UID of the thread that hit the breakpoint | |||
@param[in] bkpt_addr - Address of the breakpoint opcode | |||
@param[in] sp - Value of the stack pointer when breakpoint was hit | |||
@param[in] cpsr - Value of the CPSR when breakpoint was hit | |||
@param[in] arm_opcode - Opcode of the ARM instruction that triggered breakpoint (reversed endianness) | |||
@param[in] thumb_opcode - Opcode of the Thumb instruction that triggered breakpoint (reversed endianness) | |||
@param[in] is_thumb - 1 if CPU ran in Thumb mode when breakpoint was hit, 0 otherwise | |||
*/ | |||
typedef SceInt32 (SceDbgpBreakpointHandler)(ScePID pid, SceUID thid, ScePVoid bkpt_addr, SceUIntPtr sp, SceUInt32 cpsr, SceUInt32 arm_opcode, SceUInt16 thumb_opcode, SceBool is_thumb); | |||
</source> | |||
== SceDeci4pDbgpForDriver == | == SceDeci4pDbgpForDriver == | ||
=== | === _sceDbgpStartSupportingAppObject === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| | | 0.940.I-0.945 || 0x72AE00B7 | ||
|- | |||
| 0.990.030-3.730.011 || not present | |||
|} | |} | ||
Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStartSupportingUserlevelObject|_sceUlobjMgrStartSupportingUserlevelObject]]. | |||
<source lang="C"> | <source lang="C"> | ||
// On success, *ppDebugInfo receives a pointer to a 0x81000 bytes memblock | |||
SceInt32 _sceDbgpStartSupportingAppObject(ScePVoid** ppDebugInfo); | |||
</source> | </source> | ||
=== _sceDbgpStopSupportingAppObject === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.940.I-0.945 || 0x11908EDB | |||
|- | |||
| 0.990.030-3.730.011 || not present | |||
|} | |||
Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStopSupportingUserlevelObject|_sceUlobjMgrStopSupportingUserlevelObject]]. | |||
<source lang="C">SceInt32 _sceDbgpStopSupportingAppObject(void);</source> | |||
=== sceDbgpGetDTraceBreakpointHandlerForDriver === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.940.I-0.945 || not present | |||
|- | |||
| 0.990.030-3.730.011 || 0x01D7C7BF | |||
|} | |||
<source lang="C">SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);</source> | |||
=== sceDbgpSetDTraceBreakpointHandlerForDriver === | === sceDbgpSetDTraceBreakpointHandlerForDriver === | ||
Line 41: | Line 109: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
| 1. | | 0.940.I-0.945 || not present | ||
|- | |||
| 0.990.030-3.730.011 || 0x0509AC51 | |||
|} | |||
In FWs 0.990.030-0.995, this handles <code>bkpt #0x90</code>. Seems to handle breakpoints with code < 0x7F in FW 3.60. | |||
<source lang="C">void sceDbgpSetDTraceBreakpointHandlerForDriver(SceDbgpBreakpointHandler* handler);</source> | |||
=== SceDeci4pDbgpForDriver_7251789E === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.940-1.000.041 || not present | |||
|- | |||
| 2.000.081-3.730.011 || 0x7251789E | |||
|} | |} | ||
<source lang="C"> | Sets handler for <code>bkpt #0x90</code>. | ||
void | |||
</source> | <source lang="C">void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);</source> | ||
=== SceDeci4pDbgpForDriver_9CD5EE8C === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.940-1.81 || not present | |||
|- | |||
| 2.000.081-3.730.011 || 0x9CD5EE8C | |||
|} | |||
Get handler set by [[SceDeci4pDbgp#SceDeci4pDbgpForDriver_7251789E|SceDeci4pDbgpForDriver_7251789E]]. | |||
<source lang="C">SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);</source> | |||
== SceDeci4pDbgp == | == SceDeci4pDbgp == | ||
=== SceDeci4pDbgp_073A6B4B === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931.010-2.12 || not present | |||
|- | |||
| 2.500.071-3.730.011 || 0x073A6B4B | |||
|} | |||
=== sceDeci4pDbgpResumeAppForTestForUser === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931.010-2.12 || not present | |||
|- | |||
| 2.500.071-3.730.011 || 0x0C30DE67 | |||
|} | |||
=== SceDeci4pDbgp_6180DC1A === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931.010-2.12 || not present | |||
|- | |||
| 2.500.071-3.730.011 || 0x6180DC1A | |||
|} | |||
=== sceDeci4pDbgpSuspendAppForTestForUser === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 0.931.010-2.12 || not present | |||
|- | |||
| 2.500.071-3.730.011 || 0xE0EED45E | |||
|} | |||
[[Category:ARM]] | |||
[[Category:Kernel]] | |||
[[Category:Modules]] | [[Category:Modules]] | ||
[[Category: | [[Category:Library]] |
Latest revision as of 13:11, 9 June 2023
DECI4P Debug process.
Some functionality provided by this module seems to have been merged into SceUlobjMgr between FW 0.945 and 0.990.030.
Module
Version | World | Privilege |
---|---|---|
0.940.I-3.730.011 | Non-secure | Kernel |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
0.940.I-0.996.090 | SceDeci4pDbgpForDriver | Non-secure | User | 0xFBD04C34 |
1.000.041-3.730.011 | SceDeci4pDbgpForDriver | Non-secure | Kernel | 0xFBD04C34 |
2.500.071-3.730.011 | SceDeci4pDbgp | Non-secure | User | 0x40286FC4 |
Types
/** @brief Breakpoint handler (signature for FWs 0.990.030-0.995) @param[in] pid - UID of the process that hit the breakpoint @param[in] thid - UID of the thread that hit the breakpoint @param[in] bkpt_addr - Address of the breakpoint opcode @param[in] excp_ctx - Pointer to exception context (breakpoints trigger a PABT) @param[in] cpsr - Value of the CPSR when breakpoint was hit @param[in] arm_opcode - Opcode of the ARM instruction that triggered breakpoint (reversed endianness) @param[in] thumb_opcode - Opcode of the Thumb instruction that triggered breakpoint (reversed endianness) @param[in] is_thumb - 1 if CPU ran in Thumb mode when breakpoint was hit, 0 otherwise */ typedef SceInt32 (SceDbgpBreakpointHandler)(ScePID pid, SceUID thid, ScePVoid bkpt_addr, SceExcpmgrExceptionContext* excp_ctx, SceUInt32 spsr, SceUInt32 arm_opcode, SceUInt16 thumb_opcode, SceBool is_thumb); /** @brief Breakpoint handler (signature for FWs >= 3.60) @param[in] pid - UID of the process that hit the breakpoint @param[in] thid - UID of the thread that hit the breakpoint @param[in] bkpt_addr - Address of the breakpoint opcode @param[in] sp - Value of the stack pointer when breakpoint was hit @param[in] cpsr - Value of the CPSR when breakpoint was hit @param[in] arm_opcode - Opcode of the ARM instruction that triggered breakpoint (reversed endianness) @param[in] thumb_opcode - Opcode of the Thumb instruction that triggered breakpoint (reversed endianness) @param[in] is_thumb - 1 if CPU ran in Thumb mode when breakpoint was hit, 0 otherwise */ typedef SceInt32 (SceDbgpBreakpointHandler)(ScePID pid, SceUID thid, ScePVoid bkpt_addr, SceUIntPtr sp, SceUInt32 cpsr, SceUInt32 arm_opcode, SceUInt16 thumb_opcode, SceBool is_thumb);
SceDeci4pDbgpForDriver
_sceDbgpStartSupportingAppObject
Version | NID |
---|---|
0.940.I-0.945 | 0x72AE00B7 |
0.990.030-3.730.011 | not present |
Seemingly replaced by _sceUlobjMgrStartSupportingUserlevelObject.
// On success, *ppDebugInfo receives a pointer to a 0x81000 bytes memblock SceInt32 _sceDbgpStartSupportingAppObject(ScePVoid** ppDebugInfo);
_sceDbgpStopSupportingAppObject
Version | NID |
---|---|
0.940.I-0.945 | 0x11908EDB |
0.990.030-3.730.011 | not present |
Seemingly replaced by _sceUlobjMgrStopSupportingUserlevelObject.
SceInt32 _sceDbgpStopSupportingAppObject(void);
sceDbgpGetDTraceBreakpointHandlerForDriver
Version | NID |
---|---|
0.940.I-0.945 | not present |
0.990.030-3.730.011 | 0x01D7C7BF |
SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);
sceDbgpSetDTraceBreakpointHandlerForDriver
Version | NID |
---|---|
0.940.I-0.945 | not present |
0.990.030-3.730.011 | 0x0509AC51 |
In FWs 0.990.030-0.995, this handles bkpt #0x90
. Seems to handle breakpoints with code < 0x7F in FW 3.60.
void sceDbgpSetDTraceBreakpointHandlerForDriver(SceDbgpBreakpointHandler* handler);
SceDeci4pDbgpForDriver_7251789E
Version | NID |
---|---|
0.940-1.000.041 | not present |
2.000.081-3.730.011 | 0x7251789E |
Sets handler for bkpt #0x90
.
void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);
SceDeci4pDbgpForDriver_9CD5EE8C
Version | NID |
---|---|
0.940-1.81 | not present |
2.000.081-3.730.011 | 0x9CD5EE8C |
Get handler set by SceDeci4pDbgpForDriver_7251789E.
SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);
SceDeci4pDbgp
SceDeci4pDbgp_073A6B4B
Version | NID |
---|---|
0.931.010-2.12 | not present |
2.500.071-3.730.011 | 0x073A6B4B |
sceDeci4pDbgpResumeAppForTestForUser
Version | NID |
---|---|
0.931.010-2.12 | not present |
2.500.071-3.730.011 | 0x0C30DE67 |
SceDeci4pDbgp_6180DC1A
Version | NID |
---|---|
0.931.010-2.12 | not present |
2.500.071-3.730.011 | 0x6180DC1A |
sceDeci4pDbgpSuspendAppForTestForUser
Version | NID |
---|---|
0.931.010-2.12 | not present |
2.500.071-3.730.011 | 0xE0EED45E |