KDebug: Difference between revisions
		
		
		
		Jump to navigation
		Jump to search
		
mNo edit summary  | 
				No edit summary  | 
				||
| Line 37: | Line 37: | ||
| 0x2C  | | 0x2C  | ||
| u32  | | u32  | ||
| Debug event flags  | | Debug event flags.  | ||
Bit0: debugger is attached, bit1: report CPU exceptions, bit2 : ?, bit3: ?, bit4: ?   | |||
|-  | |-  | ||
| 0x34  | | 0x34  | ||
| Line 80: | Line 81: | ||
|-  | |-  | ||
| 0x74  | | 0x74  | ||
| [[KObjectMutex]]  | | [[KObjectMutex]] *  | ||
|   | | Recursive lock  | ||
|-  | |-  | ||
| 0x84  | | 0x84  | ||
| Line 102: | Line 103: | ||
| u16  | | u16  | ||
| ID of the invalid SVC that was attempted  | | 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.  | Exception fields are set for the latest notified exception that occured in userland.  | ||
Revision as of 00:05, 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: ?  | 
| 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 | KObjectMutex * | 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.