KDebug: Difference between revisions

No edit summary
No edit summary
 
(5 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
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.