SceDeci4pDbgp: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Some functionality provided by this module seems to have been merged into [[SceUlobjMgr]] between 0.945 and 0.990.
Some functionality provided by this module seems to have been merged into [[SceUlobjMgr]] between FW 0.945 and 0.990.


== Module ==
== Module ==
Line 7: Line 7:
! Version !! World !! Privilege
! Version !! World !! Privilege
|-
|-
| 3.60-3.65 || Non-secure || Kernel
| 0.940-3.65 || Non-secure || Kernel
|}
|}


Line 20: Line 20:
| 0.940-0.996.090 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || User || 0xFBD04C34
| 0.940-0.996.090 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || User || 0xFBD04C34
|-
|-
| 1.000.071-3.65 || [[SceDeci4pDbgp#SceDeci4pDbgpForDriver|SceDeci4pDbgpForDriver]] || Non-secure || Kernel || 0xFBD04C34
| 1.000.041-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
Line 26: Line 26:


== Types ==
== Types ==
<source lang="C">
<source lang="C">
/**
/**
     @brief Breakpoint handler (0.990 signature)
     @brief Breakpoint handler (signature for FW 0.990-0.995)
      
      
     @param[in] pid - UID of the process that hit the breakpoint
     @param[in] pid - UID of the process that hit the breakpoint
Line 42: Line 43:


/**
/**
     @brief Breakpoint handler (3.60+ signature)
     @brief Breakpoint handler (signature for FWs >= 3.60)
      
      
     @param[in] pid - UID of the process that hit the breakpoint
     @param[in] pid - UID of the process that hit the breakpoint
Line 71: Line 72:


<source lang="C">
<source lang="C">
//On success, *ppDebugInfo receives a pointer to a 0x81000 bytes memblock
// On success, *ppDebugInfo receives a pointer to a 0x81000 bytes memblock
SceInt32 _sceDbgpStartSupportingAppObject(ScePVoid** ppDebugInfo);
SceInt32 _sceDbgpStartSupportingAppObject(ScePVoid** ppDebugInfo);
</source>
</source>
Line 87: Line 88:
Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStopSupportingUserlevelObject|_sceUlobjMgrStopSupportingUserlevelObject]].
Seemingly replaced by [[SceUlobjMgr#_sceUlobjMgrStopSupportingUserlevelObject|_sceUlobjMgrStopSupportingUserlevelObject]].


<source lang="C">
<source lang="C">SceInt32 _sceDbgpStopSupportingAppObject(void);</source>
SceInt32 _sceDbgpStopSupportingAppObject(void);
</source>


=== sceDbgpGetDTraceBreakpointHandlerForDriver ===
=== sceDbgpGetDTraceBreakpointHandlerForDriver ===
Line 98: Line 97:
| 0.940-0.945 || Not present
| 0.940-0.945 || Not present
|-
|-
| 0.990-3.60 || 0x1D7C7BF
| 0.990-3.60 || 0x01D7C7BF
|}
|}


<source lang="C">
<source lang="C">SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);</source>
SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);
</source>


=== sceDbgpSetDTraceBreakpointHandlerForDriver ===
=== sceDbgpSetDTraceBreakpointHandlerForDriver ===
Line 115: Line 112:
|}
|}


In 0.990-0.995, this handles <code>bkpt #0x90</code>. Seems to handle breakpoints with code < 0x7F in 3.60.
In FW 0.990-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 lang="C">void sceDbgpSetDTraceBreakpointHandlerForDriver(SceDbgpBreakpointHandler* handler);</source>
</source>


=== SceDeci4pDbgpForDriver_7251789E ===
=== SceDeci4pDbgpForDriver_7251789E ===
Line 125: Line 121:
! Version !! NID
! Version !! NID
|-
|-
| 0.940-0.995 || Not present
| 0.940-1.000.041 || Not present
|-
|-
| 3.60 || 0x7251789E
| 3.60 || 0x7251789E
Line 131: Line 127:


Sets handler for <code>bkpt #0x90</code>.
Sets handler for <code>bkpt #0x90</code>.
<source lang="C">
 
void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);
<source lang="C">void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);</source>
</source>


=== SceDeci4pDbgpForDriver_9CD5EE8C ===
=== SceDeci4pDbgpForDriver_9CD5EE8C ===
Line 140: Line 135:
! Version !! NID
! Version !! NID
|-
|-
| 0.940-0.995 || Not present
| 0.940-1.000.041 || Not present
|-
|-
| 3.60 || 0x9CD5EE8C
| 3.60 || 0x9CD5EE8C
Line 146: Line 141:


Get handler set by [[SceDeci4pDbgp#SceDeci4pDbgpForDriver_7251789E|SceDeci4pDbgpForDriver_7251789E]].
Get handler set by [[SceDeci4pDbgp#SceDeci4pDbgpForDriver_7251789E|SceDeci4pDbgpForDriver_7251789E]].
<source lang="C">
 
SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);
<source lang="C">SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);</source>
</source>


== SceDeci4pDbgp ==
== SceDeci4pDbgp ==
Line 156: Line 150:
           SceDeci4pDbgp_6180DC1A: 0x6180DC1A
           SceDeci4pDbgp_6180DC1A: 0x6180DC1A
           sceDeci4pDbgpSuspendAppForTestForUser: 0xE0EED45E
           sceDeci4pDbgpSuspendAppForTestForUser: 0xE0EED45E


[[Category:Modules]]
[[Category:Modules]]
[[Category:Kernel]]
[[Category:Kernel]]

Revision as of 06:49, 2 October 2022

Some functionality provided by this module seems to have been merged into SceUlobjMgr between FW 0.945 and 0.990.

Module

Version World Privilege
0.940-3.65 Non-secure Kernel

Libraries

Known NIDs

Version Name World Visibility NID
0.940-0.996.090 SceDeci4pDbgpForDriver Non-secure User 0xFBD04C34
1.000.041-3.65 SceDeci4pDbgpForDriver Non-secure Kernel 0xFBD04C34
3.65 SceDeci4pDbgp Non-secure User 0x40286FC4

Types

/**
    @brief Breakpoint handler (signature for FW 0.990-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-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 0x01D7C7BF
SceDbgpBreakpointHandler* sceDbgpGetDTraceBreakpointHandlerForDriver(void);

sceDbgpSetDTraceBreakpointHandlerForDriver

Version NID
0.940-0.945 Not present
0.990-3.60 0x0509AC51

In FW 0.990-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
3.60 0x7251789E

Sets handler for bkpt #0x90.

void SceDeci4pDbgpForDriver_7251789E(SceDbgpBreakpointHandler* handler);

SceDeci4pDbgpForDriver_9CD5EE8C

Version NID
0.940-1.000.041 Not present
3.60 0x9CD5EE8C

Get handler set by SceDeci4pDbgpForDriver_7251789E.

SceDbgpBreakpointHandler* SceDeci4pDbgpForDriver_9CD5EE8C(void);

SceDeci4pDbgp

         SceDeci4pDbgp_073A6B4B: 0x073A6B4B
         sceDeci4pDbgpResumeAppForTestForUser: 0x0C30DE67
         SceDeci4pDbgp_6180DC1A: 0x6180DC1A
         sceDeci4pDbgpSuspendAppForTestForUser: 0xE0EED45E