Changes

Jump to navigation Jump to search
3,059 bytes added ,  00:10, 3 June 2020
no edit summary
Line 34: Line 34:  
| [[KSendableInterruptEvent]]
 
| [[KSendableInterruptEvent]]
 
| Process termination event
 
| Process termination event
 +
|-
 +
| 0x1C
 +
| u8
 +
| Indicates an ATTACH PROCESS event has been signaled to this object
 +
|-
 +
| 0x1D
 +
| u8
 +
| Debug string length >> 31, always 0
 +
|-
 +
| 0x1E
 +
| u8
 +
| Indicates that a debug event is currently being signaled to this object
 +
|-
 +
| 0x1F
 +
| u8
 +
| Indicates 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.
 +
|-
 +
| 0x20
 +
| [[SVC|DebugEventType]]
 +
| Type of the latest debug event
 +
|-
 +
| 0x24
 +
| u32
 +
| Unknown, probably unused
 +
|-
 +
| 0x28
 +
| [[KThread]] *
 +
| Thread having exclusive access to this object
 
|-
 
|-
 
| 0x2C
 
| 0x2C
 
| u32
 
| u32
| Debug event flags
+
| Debug 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.
 +
|-
 +
| 0x30
 +
| u32
 +
| Stop point type that caused the event: 0 = svc 0xFF, 1 = breakpoint, 2 = watchpoint (otherwise it's not updated).
 
|-
 
|-
 
| 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
 +
| u32
 +
| Count of KEventInfo object nodes to be fetched with svcContinueDebugEvent (associated with this KDebug object)
 +
|-
 +
| 0x44
 +
| [[KLinkedListNode]]*
 +
| Pointer to first KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent
 +
|-
 +
| 0x48
 +
| [[KLinkedListNode]]*
 +
| Pointer to last KLinkedListNode in linked list of KEventInfo objects to be fetched with svcContinueDebugEvent
 
|-
 
|-
 
| 0x4C
 
| 0x4C
| KProcess*
+
| [[KProcess]]*
| Process the thread belongs to (virtual address)
+
| Parent process
 +
|-
 +
| 0x50
 +
| [[KThread]]*
 +
| Current KThread- thread being debugged
 +
|-
 +
| 0x54
 +
| [[KThread]]*
 +
| Thread using ContinueDebugEvent
 +
|-
 +
| 0x58
 +
| s32
 +
| Cpu core of thread using ContinueDebugEvent
 
|-
 
|-
 
| 0x5C
 
| 0x5C
Line 69: Line 128:  
| 0x68
 
| 0x68
 
| u32
 
| u32
| Count of KDebug object nodes
+
| List 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.
 
|-
 
|-
 
| 0x6C
 
| 0x6C
 
| KLinkedListNode*
 
| KLinkedListNode*
| Pointer to first KLinkedListNode in linked list of KDebug objects
+
| Pointer to first KLinkedListNode in the above list
 
|-
 
|-
 
| 0x70
 
| 0x70
 
| KLinkedListNode*
 
| KLinkedListNode*
| Pointer to last KLinkedListNode in linked list of KDebug objects
+
| Pointer to last KLinkedListNode in the above list
 +
|-
 +
| 0x74
 +
| [[KRecursiveLock]]
 +
| Recursive lock
 +
|-
 +
| 0x7C
 +
| [[KThread]]*
 +
| 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
 +
| u32 *
 +
| Register dump
 +
|-
 +
| 0x8C
 +
| u32
 +
| [[SVC#EXCEPTION_event|Exception type]]
 +
|-
 +
| 0x90
 +
| u16
 +
| Number of "EXCEPTION" events encountered (0 or 1)
 +
|-
 +
| 0x92
 +
| u16
 +
| ID of the invalid SVC that was attempted
 +
|-
 +
| 0x94
 +
| u16
 +
| Total number of debug events associated with this object awaiting svcContinueDebugEvent
 +
|-
 +
| 0x96
 +
| u16
 +
| Number of EXIT PROCESS debug events associated with this object awaiting svcContinueDebugEvent
 +
|-
 +
| 0x98
 +
| const char *
 +
| Debug string
 +
|-
 +
| 0x9C
 +
| u32
 +
| Debug string length
 
|}
 
|}
516

edits

Navigation menu