Fatal services: Difference between revisions

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]]