KDebug: Difference between revisions

No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 37: Line 37:
| 0x1C
| 0x1C
| u8
| u8
| Indicates a PROCESS event has been signaled to this object
| Indicates an ATTACH PROCESS event has been signaled to this object
|-
|-
| 0x1D
| 0x1D
| u8
| u8
| Debug string length >> 31
| Debug string length >> 31, always 0
|-
|-
| 0x1E
| 0x1E
Line 55: Line 55:
| [[SVC|DebugEventType]]
| [[SVC|DebugEventType]]
| Type of the latest debug event
| Type of the latest debug event
|-
| 0x24
| u32
| Unknown, probably unused
|-
|-
| 0x28
| 0x28
Line 63: Line 67:
| u32
| u32
| Debug event flags set by svcContinueDebugEvents
| Debug event flags set by svcContinueDebugEvents
Bit0: debugger is attached, bit1: report "EXCEPTION" events (this flag is bypassed for svc 0xFF), bit2 : ?, bit3: ?, bit4: ?
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.
|-
|-
| 0x30
| 0x30
Line 71: Line 76:
| 0x34
| 0x34
| u32
| u32
| Count of KEventInfo object nodes associated with this KDebug object
| Count of KEventInfo object nodes to be fetched with svcGetProcessDebugEvent (associated with this KDebug object)
|-
|-
| 0x38
| 0x38
| [[KLinkedListNode]]*
| [[KLinkedListNode]]*
| Pointer to first KLinkedListNode in linked list of KEventInfo objects
| Pointer to first KLinkedListNode in linked list of KEventInfo objects to be fetched with svcGetProcessDebugEvent
|-
|-
| 0x3C
| 0x3C
| [[KLinkedListNode]]*
| [[KLinkedListNode]]*
| Pointer to last KLinkedListNode in linked list of KEventInfo objects
| Pointer to last KLinkedListNode in linked list of KEventInfo objects to be fetched with svcGetProcessDebugEvent
|-
|-
| 0x40
| 0x40
Line 111: Line 116:
| 0x5C
| 0x5C
| u32
| u32
| Count of KThread object nodes associated with this KDebug object (threads linked to [[KDebugThread]]* instances)
| Count of KDebugThread object nodes associated with this KDebug object
|-
|-
| 0x60
| 0x60
| KLinkedListNode*
| KLinkedListNode*
| Pointer to first KLinkedListNode in linked list of KThread objects
| Pointer to first KLinkedListNode in linked list of KDebugThread objects
|-
|-
| 0x64
| 0x64
| KLinkedListNode*
| KLinkedListNode*
| Pointer to last KLinkedListNode in linked list of KThread objects
| Pointer to last KLinkedListNode in linked list of KDebugThread objects
|-
|-
| 0x68
| 0x68
| u32
| u32
| List size; this [[KLinkedList]] of [[KThread]] instances of the parent process.
| List size; this [[KLinkedList]] of all the [[KThread]] instances of the parent process: the currently running threads followed the others,
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
by core then by dynamic priority.
|-
|-
| 0x6C
| 0x6C
Line 135: Line 140:
|-
|-
| 0x74
| 0x74
| [[KRecursiveLock]] *
| [[KRecursiveLock]]
| Recursive lock
| Recursive lock
|-
|-
Line 141: Line 146:
| [[KThread]]*
| [[KThread]]*
| Current KThread- used in svcBreak
| Current KThread- used in svcBreak
|-
| 0x80
| u8
| Cleared when an EXCEPTION debug event was (attempted to be) signaled (i.e. even when bit2 of the debug flag is clear)
|-
| 0x81
| u8
| Indicates that an EXCEPTION debug event was signaled
|-
| 0x82
| u8
| Indicates that all threads should be unlocked
|-
| 0x83
| u8
| Indicates that an EXCEPTION debug event different from USER_BREAK was continued, while the process was paused
|-
|-
| 0x84
| 0x84
| u8
| u8
| Set to 1 to indicate the KProcess it belongs to exited
| Indicates that a USER_BREAK debug event was continued while the process was paused
|-
|-
| 0x85
| 0x85
| u8
| u8
| Set to 1 to indicate the KProcess it belongs to has been terminated
| Indicates that the KProcess instance it belongs to has exited (normally ?)
|-
| 0x86
| u8
| Indicates that the KProcess instance it belongs to has been terminated
|-
| 0x87
| u8
| Indicates that svcBreak was used and not yet handled by svcContinueDebugEvent, with type != (UN)LOAD_RO
|-
|-
| 0x88
| 0x88
Line 182: Line 211:
| Debug string length
| Debug string length
|}
|}
Exception fields are set for the latest notified exception that occured in userland.