Difference between revisions of "SceDeci4pDbgp"
Jump to navigation
Jump to search
(→Module) |
(Add signature for DTrace breakpoint handlers, add some info about module history, add missing headers for DbgpForDriver functions) |
||
Line 1: | Line 1: | ||
+ | Some functionality provided by this module seems to have been merged into [[SceUlobjMgr]] between 0.945 and 0.990. | ||
+ | |||
== Module == | == Module == | ||
Line 16: | Line 18: | ||
! Version !! Name !! World !! Visibility !! NID | ! Version !! Name !! World !! Visibility !! NID | ||
|- | |- | ||
− | | 1.69 - 3.65 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || Kernel || 0xFBD04C34 | + | | 0.940-0.990 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || User || 0xFBD04C34 |
+ | |- | ||
+ | | 1.69-3.65 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || Kernel || 0xFBD04C34 | ||
|- | |- | ||
| 3.65 || [[SceDeci4pDbgp#SceDeci4pDbgp|SceDeci4pDbgp]] || Non-secure || User || 0x40286FC4 | | 3.65 || [[SceDeci4pDbgp#SceDeci4pDbgp|SceDeci4pDbgp]] || Non-secure || User || 0x40286FC4 | ||
|} | |} | ||
+ | |||
+ | == Types == | ||
+ | <source lang="C"> | ||
+ | /** | ||
+ | @brief Breakpoint handler (0.990 signature) | ||
+ | |||
+ | @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 (3.60+ signature) | ||
+ | |||
+ | @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" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.940-0.945 || 0x72AE00B7 | ||
+ | |- | ||
+ | | 0.990-3.60 || Not present | ||
+ | |} | ||
+ | |||
+ | Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStartSupportingUserlevelObject|_sceUlobjMgrStartSupportingUserlevelObject]]. | ||
+ | |||
+ | <source lang="C"> | ||
+ | //On success, *ppDebugInfo receives a pointer to a 0x81000 bytes memblock | ||
+ | SceInt32 _sceDbgpStartSupportingAppObject(ScePVoid** ppDebugInfo); | ||
+ | </source> | ||
+ | |||
+ | === _sceDbgpStopSupportingAppObject === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.940-0.945 || 0x11908EDB | ||
+ | |- | ||
+ | | 0.990-3.60 || Not present | ||
+ | |} | ||
+ | |||
+ | Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStopSupportingUserlevelObject|_sceUlobjMgrStopSupportingUserlevelObject]]. | ||
+ | |||
+ | <source lang="C"> | ||
+ | SceInt32 _sceDbgpStopSupportingAppObject(void); | ||
+ | </source> | ||
=== sceDbgpGetDTraceBreakpointHandlerForDriver === | === sceDbgpGetDTraceBreakpointHandlerForDriver === | ||
Line 28: | Line 96: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 0.940-0.945 || Not present |
+ | |- | ||
+ | | 0.990-3.60 || 0x1D7C7BF | ||
|} | |} | ||
<source lang="C"> | <source lang="C"> | ||
− | + | SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void); | |
</source> | </source> | ||
Line 40: | Line 110: | ||
! Version !! NID | ! Version !! NID | ||
|- | |- | ||
− | | | + | | 0.940-0.945 || Not present |
+ | |- | ||
+ | | 0.990-3.60 || 0x0509AC51 | ||
+ | |} | ||
+ | |||
+ | In 0.990-0.995, this handles <code>bkpt #0x90</code>. Seems to handle breakpoints with code < 0x7F in 3.60. | ||
+ | <source lang="C"> | ||
+ | void sceDbgpSetDTraceBreakpointHandlerForDriver(SceDbgpBreakpointHandler* handler); | ||
+ | </source> | ||
+ | |||
+ | === SceDeci4pDbgpForDriver_7251789E === | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.940-0.995 || Not present | ||
+ | |- | ||
+ | | 3.60 || 0x7251789E | ||
|} | |} | ||
+ | Sets handler for <code>bkpt #0x90</code>. | ||
<source lang="C"> | <source lang="C"> | ||
− | void | + | void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler); |
</source> | </source> | ||
− | + | === SceDeci4pDbgpForDriver_9CD5EE8C === | |
− | + | {| class="wikitable" | |
+ | |- | ||
+ | ! Version !! NID | ||
+ | |- | ||
+ | | 0.940-0.995 || Not present | ||
+ | |- | ||
+ | | 3.60 || 0x9CD5EE8C | ||
+ | |} | ||
+ | |||
+ | Get handler set by [[SceDeci4pDbgp#SceDeci4pDbgpForDriver_7251789E|SceDeci4pDbgpForDriver_7251789E]]. | ||
+ | <source lang="C"> | ||
+ | SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void); | ||
+ | </source> | ||
== SceDeci4pDbgp == | == SceDeci4pDbgp == |
Revision as of 19:19, 13 January 2022
Some functionality provided by this module seems to have been merged into SceUlobjMgr between 0.945 and 0.990.
Module
Version | World | Privilege |
---|---|---|
3.60-3.65 | Non-secure | Kernel |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
0.940-0.990 | SceDeci4pDbgpForDriver | Non-secure | User | 0xFBD04C34 |
1.69-3.65 | SceDeci4pDbgpForDriver | Non-secure | Kernel | 0xFBD04C34 |
3.65 | SceDeci4pDbgp | Non-secure | User | 0x40286FC4 |
Types
/**
@brief Breakpoint handler (0.990 signature)
@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 (3.60+ signature)
@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-0.945 | 0x72AE00B7 |
0.990-3.60 | 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-0.945 | 0x11908EDB |
0.990-3.60 | Not present |
Seemingly replaced by _sceUlobjMgrStopSupportingUserlevelObject.
SceInt32 _sceDbgpStopSupportingAppObject(void);
sceDbgpGetDTraceBreakpointHandlerForDriver
Version | NID |
---|---|
0.940-0.945 | Not present |
0.990-3.60 | 0x1D7C7BF |
SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);
sceDbgpSetDTraceBreakpointHandlerForDriver
Version | NID |
---|---|
0.940-0.945 | Not present |
0.990-3.60 | 0x0509AC51 |
In 0.990-0.995, this handles bkpt #0x90
. Seems to handle breakpoints with code < 0x7F in 3.60.
void sceDbgpSetDTraceBreakpointHandlerForDriver(SceDbgpBreakpointHandler* handler);
SceDeci4pDbgpForDriver_7251789E
Version | NID |
---|---|
0.940-0.995 | Not present |
3.60 | 0x7251789E |
Sets handler for bkpt #0x90
.
void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);
SceDeci4pDbgpForDriver_9CD5EE8C
Version | NID |
---|---|
0.940-0.995 | Not present |
3.60 | 0x9CD5EE8C |
Get handler set by SceDeci4pDbgpForDriver_7251789E.
SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);
SceDeci4pDbgp
SceDeci4pDbgp_073A6B4B: 0x073A6B4B SceDeci4pDbgp_0C30DE67: 0x0C30DE67 SceDeci4pDbgp_6180DC1A: 0x6180DC1A SceDeci4pDbgp_E0EED45E: 0xE0EED45E