SceDeci4pDbgp

From Vita Development Wiki
Revision as of 13:11, 9 June 2023 by CelesteBlue (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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