KDebug

KDebug

class KDebug extends KSynchronizationObject and KSendableInterruptEvent;

Size : 0xA0 bytes

OffsetTypeDescription
0x0u32Pointer to vtable
0x4u32Reference count
0x8u32Count of KThreads that sync with this object - number of nodes in the linked list below
0xCKLinkedListNode*Pointer to first KLinkedListNode in node list of KThreads that sync with this object
0x10KLinkedListNode*Pointer to last KLinkedListNode in node list of KThreads that sync with this object
0x14KSendableInterruptEventProcess termination event
0x1Cu8Indicates an ATTACH PROCESS event has been signaled to this object
0x1Du8Debug string length >> 31, always 0
0x1Eu8Indicates that a debug event is currently being signaled to this object
0x1Fu8Indicates 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.
0x20DebugEventTypeType of the latest debug event
0x24u32Unknown, probably unused
0x28KThread *Thread having exclusive access to this object
0x2Cu32Debug event flags set by svcContinueDebugEvents Bit0: no exception dumps are made if this is set. Bit1 and following: report EXCEPTION (this flag is bypassed for svc 0xFF), SCHEDULE, SYSCALL, MAP debug events, respectively.
0x30u32Stop point type that caused the event: 0 = svc 0xFF, 1 = breakpoint, 2 = watchpoint (otherwise it’s not updated).
0x34u32Count of KEventInfo object nodes to be fetched with svcGetProcessDebugEvent (associated with this KDebug object)
0x38KLinkedListNode*Pointer to first KLinkedListNode in linked list of KEventInfo objects to be fetched with svcGetProcessDebugEvent
0x3CKLinkedListNode*Pointer to last KLinkedListNode in linked list of KEventInfo objects to be fetched with svcGetProcessDebugEvent
0x40u32Count of KEventInfo object nodes to be fetched with svcContinueDebugEvent (associated with this KDebug object)
0x44KLinkedListNode*Pointer to first KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent
0x48KLinkedListNode*Pointer to last KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent
0x4CKProcess*Parent process
0x50KThread*Current KThread- thread being debugged
0x54KThread*Thread using ContinueDebugEvent
0x58s32Cpu core of thread using ContinueDebugEvent
0x5Cu32Count of KDebugThread object nodes associated with this KDebug object
0x60KLinkedListNode*Pointer to first KLinkedListNode in linked list of KDebugThread objects
0x64KLinkedListNode*Pointer to last KLinkedListNode in linked list of KDebugThread objects
0x68u32List size; this KLinkedList of all the KThread instances of the parent process: the currently running threads followed the others, by core then by dynamic priority.
0x6CKLinkedListNode*Pointer to first KLinkedListNode in the above list
0x70KLinkedListNode*Pointer to last KLinkedListNode in the above list
0x74KRecursiveLockRecursive lock
0x7CKThread*Current KThread- used in svcBreak
0x80u8Cleared when an EXCEPTION debug event was (attempted to be) signaled (i.e. even when bit2 of the debug flag is clear)
0x81u8Indicates that an EXCEPTION debug event was signaled
0x82u8Indicates that all threads should be unlocked
0x83u8Indicates that an EXCEPTION debug event different from USER_BREAK was continued, while the process was paused
0x84u8Indicates that a USER_BREAK debug event was continued while the process was paused
0x85u8Indicates that the KProcess instance it belongs to has exited (normally ?)
0x86u8Indicates that the KProcess instance it belongs to has been terminated
0x87u8Indicates that svcBreak was used and not yet handled by svcContinueDebugEvent, with type != (UN)LOAD_RO
0x88u32 *Register dump
0x8Cu32Exception type
0x90u16Number of “EXCEPTION” events encountered (0 or 1)
0x92u16ID of the invalid SVC that was attempted
0x94u16Total number of debug events associated with this object awaiting svcContinueDebugEvent
0x96u16Number of EXIT PROCESS debug events associated with this object awaiting svcContinueDebugEvent
0x98const char *Debug string
0x9Cu32Debug string length

Category:Kernel synchronization objects Category:Kernel interrupt events