Difference between revisions of "KDebug"

From 3dbrew
Jump to navigation Jump to search
m
Line 85: Line 85:
 
|-
 
|-
 
| 0x74
 
| 0x74
| [[KObjectMutex]] *
+
| [[KRecursiveLock]] *
 
| Recursive lock
 
| Recursive lock
 
|-
 
|-

Revision as of 02:25, 13 December 2016

class KDebug extends KSynchronizationObject and KSendableInterruptEvent;

Size : 0xA0 bytes

Offset Type Description
0x0 u32 Pointer to vtable
0x4 u32 Reference count
0x8 u32 Count of KThreads that sync with this object - number of nodes in the linked list below
0xC KLinkedListNode* Pointer to first KLinkedListNode in node list of KThreads that sync with this object
0x10 KLinkedListNode* Pointer to last KLinkedListNode in node list of KThreads that sync with this object
0x14 KSendableInterruptEvent Process termination event
0x2C u32 Debug event flags.

Bit0: debugger is attached, bit1: report CPU exceptions, bit2 : ?, bit3: ?, bit4: ?

0x30 u32 Stop point type that caused the event: 0 = svc 0xFF, 1 = breakpoint, 2 = watchpoint (otherwise it's not updated).
0x34 u32 Count of KEventInfo object nodes associated with this KDebug object
0x38 KLinkedListNode* Pointer to first KLinkedListNode in linked list of KEventInfo objects
0x3C KLinkedListNode* Pointer to last KLinkedListNode in linked list of KEventInfo objects
0x4C KProcess* Process the thread belongs to (virtual address)
0x5C u32 Count of KDebugThread object nodes associated with this KDebug object
0x60 KLinkedListNode* Pointer to first KLinkedListNode in linked list of KDebugThread objects
0x64 KLinkedListNode* Pointer to last KLinkedListNode in linked list of KDebugThread objects
0x68 u32 Count of KDebug object nodes
0x6C KLinkedListNode* Pointer to first KLinkedListNode in linked list of KDebug objects
0x70 KLinkedListNode* Pointer to last KLinkedListNode in linked list of KDebug objects
0x74 KRecursiveLock * Recursive lock
0x84 u8 Set to 1 to indicate the KProcess it belongs to exited
0x85 u8 Set to 1 to indicate the KProcess it belongs to has been terminated
0x88 u32 * Register dump
0x8C u32 Exception type
0x92 u16 ID of the invalid SVC that was attempted
0x98 const char * Debug string
0x9C u32 Debug string length

Exception fields are set for the latest notified exception that occured in userland.