Difference between revisions of "KDebug"
Jump to navigation
Jump to search
Line 58: | Line 58: | ||
| 0x28 | | 0x28 | ||
| [[KThread]] * | | [[KThread]] * | ||
− | | Thread | + | | Thread having exclusive access to this object |
|- | |- | ||
| 0x2C | | 0x2C | ||
Line 123: | Line 123: | ||
| 0x68 | | 0x68 | ||
| u32 | | u32 | ||
− | | | + | | List size; this [[KLinkedList]] of [[KThread]] instances of the parent process. |
+ | It is made of the process's currently running threads, then, for each core, of one thread by priority (if it exists), from highest to lowest priority | ||
|- | |- | ||
| 0x6C | | 0x6C | ||
| KLinkedListNode* | | KLinkedListNode* | ||
− | | Pointer to first KLinkedListNode in | + | | Pointer to first KLinkedListNode in the above list |
|- | |- | ||
| 0x70 | | 0x70 | ||
| KLinkedListNode* | | KLinkedListNode* | ||
− | | Pointer to last KLinkedListNode in | + | | Pointer to last KLinkedListNode in the above list |
|- | |- | ||
| 0x74 | | 0x74 |
Revision as of 23:48, 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 |
0x1F | u8 | Indicates that the parent process is paused (using svcBreakDebugProcess).
svcContinueDebugEvent will ignore all debug events other than EXIT PROCESS, and some other debug SVCs will return an error. |
0x20 | DebugEventType | Type of the latest debug event |
0x28 | KThread * | Thread having exclusive access 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* | Parent process |
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 | List size; this KLinkedList of KThread instances of the parent process.
It is made of the process's currently running threads, then, for each core, of one thread by priority (if it exists), from highest to lowest priority |
0x6C | KLinkedListNode* | Pointer to first KLinkedListNode in the above list |
0x70 | KLinkedListNode* | Pointer to last KLinkedListNode in the above list |
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 | Total number of debug events associated with this object awaiting svcContinueDebugEvent |
0x96 | u16 | Number of EXIT PROCESS debug events associated with this object awaiting svcContinueDebugEvent |
0x98 | const char * | Debug string |
0x9C | u32 | Debug string length |
Exception fields are set for the latest notified exception that occured in userland.