Difference between revisions of "KDebug"
Jump to navigation
Jump to search
Line 34: | Line 34: | ||
| [[KSendableInterruptEvent]] | | [[KSendableInterruptEvent]] | ||
| Process termination event | | Process termination event | ||
+ | |- | ||
+ | | 0x1C | ||
+ | | u8 | ||
+ | | Indicates a PROCESS event has been signaled to this object | ||
+ | |- | ||
+ | | 0x1D | ||
+ | | u8 | ||
+ | | Debug string length >> 31 | ||
+ | |- | ||
+ | | 0x1E | ||
+ | | u8 | ||
+ | | Indicates that a debug event is currently being signaled to this object | ||
+ | |- | ||
+ | | 0x20 | ||
+ | | [[SVC|DebugEventType]] | ||
+ | | Type of the latest debug event | ||
+ | |- | ||
+ | | 0x28 | ||
+ | | [[KThread]] * | ||
+ | | Thread exclusively reporting a debug event to this object | ||
|- | |- | ||
| 0x2C | | 0x2C |
Revision as of 19:08, 14 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 |
0x1C | u8 | Indicates a PROCESS event has been signaled to this object |
0x1D | u8 | Debug string length >> 31 |
0x1E | u8 | Indicates that a debug event is currently being signaled to this object |
0x20 | DebugEventType | Type of the latest debug event |
0x28 | KThread * | Thread exclusively reporting a debug event to this object |
0x2C | u32 | Debug event flags set by svcContinueDebugEvents
Bit0: debugger is attached, bit1: report "EXCEPTION" events (this flag is bypassed for svc 0xFF), 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 |
0x40 | u32 | Count of KEventInfo object nodes to be fetched with svcContinueDebugEvent (associated with this KDebug object) |
0x44 | KLinkedListNode* | Pointer to first KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent |
0x48 | KLinkedListNode* | Pointer to last KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent |
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 KThread object nodes associated with this KDebug object (threads linked to KDebugThread* instances) |
0x60 | KLinkedListNode* | Pointer to first KLinkedListNode in linked list of KThread objects |
0x64 | KLinkedListNode* | Pointer to last KLinkedListNode in linked list of KThread 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 |
0x90 | u16 | Number of "EXCEPTION" events encountered (0 or 1) |
0x92 | u16 | ID of the invalid SVC that was attempted |
0x94 | u16 | Counter, unknown |
0x96 | u16 | Counter, unknown |
0x98 | const char * | Debug string |
0x9C | u32 | Debug string length |
Exception fields are set for the latest notified exception that occured in userland.