Difference between revisions of "Fatal services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(symbolz)
Line 6: Line 6:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 ||  
+
| 0 || ThrowFatal
 
|-
 
|-
| 1 || FatalSimple
+
| 1 || ThrowFatalWithPolicy
 
|-
 
|-
| 2 || [[#TransitionToFatalError]]
+
| 2 || [[#ThrowFatalWithCpuContext]]
 
|}
 
|}
  
== TransitionToFatalError ==
+
== ThrowFatalWithCpuContext ==
 
Takes an input u64 errorcode and an unknown u64(TID maybe?). It also takes a type-0x15 error buffer and a pid-descriptor. The error buffer contains a stack trace.  
 
Takes an input u64 errorcode and an unknown u64(TID maybe?). It also takes a type-0x15 error buffer and a pid-descriptor. The error buffer contains a stack trace.  
 
The stack trace address count is stored at errorbuffer+0x240 and the addresses are stored at errorbuffer+0x130+i*8 where i = 0->address count
 
The stack trace address count is stored at errorbuffer+0x240 and the addresses are stored at errorbuffer+0x130+i*8 where i = 0->address count
Line 26: Line 26:
 
| 0 || GetFatalEvent
 
| 0 || GetFatalEvent
 
|}
 
|}
 
[[Category:Services]]
 

Revision as of 20:06, 20 March 2018

fatal:u

This is "nn::fatalsrv::IService".

Cmd Name
0 ThrowFatal
1 ThrowFatalWithPolicy
2 #ThrowFatalWithCpuContext

ThrowFatalWithCpuContext

Takes an input u64 errorcode and an unknown u64(TID maybe?). It also takes a type-0x15 error buffer and a pid-descriptor. The error buffer contains a stack trace. The stack trace address count is stored at errorbuffer+0x240 and the addresses are stored at errorbuffer+0x130+i*8 where i = 0->address count

fatal:p

This is "nn::fatalsrv::IPrivateService".

Cmd Name
0 GetFatalEvent