Difference between revisions of "Fatal services"
Jump to navigation
Jump to search
(Created page with "= fatal:u = {| class="wikitable" border="1" |- ! Cmd || Name |- | 0 || |- | 1 || |- | 2 || |} = fatal:p =") |
(→fatal:p: official command name) |
||
(10 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
= fatal:u = | = fatal:u = | ||
+ | This is "nn::fatalsrv::IService". | ||
+ | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || ThrowFatal |
|- | |- | ||
− | | 1 || | + | | 1 || ThrowFatalWithPolicy |
|- | |- | ||
− | | 2 || | + | | 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 = | = fatal:p = | ||
+ | This is "nn::fatalsrv::IPrivateService". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || GetFatalEvent | ||
+ | |- | ||
+ | | 10 || [14.0.0+] GetFatalContext | ||
+ | |} | ||
+ | |||
+ | == FatalType == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || ErrorReportAndErrorScreen | ||
+ | |- | ||
+ | | 1 || ErrorReport | ||
+ | |- | ||
+ | | 2 || [3.0.0+] ErrorScreen | ||
+ | |} | ||
+ | |||
+ | [[Category:Services]] |
Latest revision as of 06:06, 18 April 2022
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 |
10 | [14.0.0+] GetFatalContext |
FatalType
Value | Name |
---|---|
0 | ErrorReportAndErrorScreen |
1 | ErrorReport |
2 | [3.0.0+] ErrorScreen |