KDebug: Difference between revisions

No edit summary
No edit summary
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 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 from debug features
|-
|-
| 0x83
| 0x83
Line 152: Line 169:
| 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
| 0x87
| u8
| u8
| Unknown (bool?)
| Indicates that svcBreak was used and not yet handled by svcContinueDebugEvent
|-
|-
| 0x88
| 0x88
Line 191: Line 212:
|}
|}


Exception fields are set for the latest notified exception that occured in userland.
"Locked from debug features": this is done by setting bit7 of the thread's scheduling mask, which is checked by debug SVCs afterwards