Difference between revisions of "KDebug"

From 3dbrew
Jump to navigation Jump to search
m
Line 49: Line 49:
 
|-
 
|-
 
| 0x38
 
| 0x38
| KLinkedListNode*
+
| [[KLinkedListNode]]*
 
| Pointer to first KLinkedListNode in linked list of KEventInfo objects
 
| Pointer to first KLinkedListNode in linked list of KEventInfo objects
 
|-
 
|-
 
| 0x3C
 
| 0x3C
| KLinkedListNode*
+
| [[KLinkedListNode]]*
 
| Pointer to last KLinkedListNode in linked list of KEventInfo objects
 
| Pointer to last KLinkedListNode in linked list of KEventInfo objects
 
|-
 
|-
 
| 0x4C
 
| 0x4C
| KProcess*
+
| [[KProcess]]*
 
| Process the thread belongs to (virtual address)
 
| Process the thread belongs to (virtual address)
 +
|-
 +
| 0x50
 +
| [[KThread*]]
 +
| Current KThread- thread being debugged
 +
|-
 +
| 0x54
 +
| [[KThread*]]
 +
| Thread using ContinueDebugEvent
 +
|-
 +
| 0x58
 +
| s32
 +
| Cpu core of thread using ContinueDebugEvent
 
|-
 
|-
 
| 0x5C
 
| 0x5C
Line 87: Line 99:
 
| [[KRecursiveLock]] *
 
| [[KRecursiveLock]] *
 
| Recursive lock
 
| Recursive lock
 +
|-
 +
| 0x7C
 +
| [[KThread*]]
 +
| Current KThread- used in svcBreak
 
|-
 
|-
 
| 0x84
 
| 0x84

Revision as of 04:24, 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)
0x50 KThread* Current KThread- thread being debugged
0x54 KThread* Thread using ContinueDebugEvent
0x58 s32 Cpu core of thread using ContinueDebugEvent
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
0x7C KThread* Current KThread- used in svcBreak
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.