Changes

Jump to navigation Jump to search
2,273 bytes removed ,  21:24, 23 December 2016
m
no edit summary
Line 3: Line 3:  
The register dump/fatal error info can also be written to [[nandrw/sys/native.log]]. On retail consoles, the system does not notify ErrDisp that any user-land exceptions occurred, ErrDisp is only notified for this on dev/debug units. Therefore, on retail consoles native.log only contains info from fatal errors. Starting with [[5.0.0-11]] ErrDisp no longer writes logs to native.log, except when the error-type is value 5 and when other checks with the errorinfo structure are successful (normally processes using this port never use error-type 5).
 
The register dump/fatal error info can also be written to [[nandrw/sys/native.log]]. On retail consoles, the system does not notify ErrDisp that any user-land exceptions occurred, ErrDisp is only notified for this on dev/debug units. Therefore, on retail consoles native.log only contains info from fatal errors. Starting with [[5.0.0-11]] ErrDisp no longer writes logs to native.log, except when the error-type is value 5 and when other checks with the errorinfo structure are successful (normally processes using this port never use error-type 5).
   −
The bottom screen displays the error screen like "error has occurred", even with a development 3DS. The top screen can display the development error info, this is only displayed when [[Configuration_Memory|UNITINFO]] bit0 is clear, for a development 3DS.
+
The bottom screen displays the error screen like "error has occurred", even with a development 3DS. The top screen can display the development error info, this is only displayed when [[Configuration_Memory#ENVINFO|ENVINFO]] bit0 is clear, for a development 3DS.
    
ErrDisp handles "returning" to Home Menu via [[NSS:RebootSystem]], which triggers a hardware system reboot.
 
ErrDisp handles "returning" to Home Menu via [[NSS:RebootSystem]], which triggers a hardware system reboot.
Line 14: Line 14:  
|-
 
|-
 
| 0x00010800
 
| 0x00010800
| ThrowFatalError(0x80-byte errorinfo)
+
| [[ERR:Throw|Throw]]
 
|-
 
|-
 
| 0x00020042
 
| 0x00020042
| (size, <nowiki>(size<<14) | 2</nowiki>, errorinfoptr) This is similar to cmd1, except with this the input buffer is copied to final output errorinfo+0x80 instead of +0x0, via the ARM11 kernel. Max size is 0x100. ErrDisp doesn't do anything in the cmd-handler for this command at all, besides checking the command header and buffer header.
+
| [[ERR:SetUserString|SetUserString]]
|}
  −
 
  −
= output, where *((u8*)errinfo) == 0 or 1 =
  −
{| class="wikitable" border="1"
  −
|-
  −
! Entry
  −
! Format string
  −
! Format args
  −
! Description
  −
|-
  −
| PID
  −
| 0x%08X_0x%08X
  −
| *(u32*)(errinfo + 0x10), *(u32*)(errinfo + 0x14)
  −
| Process ID
  −
|-
  −
| REV
  −
| %d
  −
| *(u16*)(errinfo + 2) <nowiki>|</nowiki> (*(u8*)(errinfo + 1) << 16)
  −
| ?
  −
|-
  −
| AID
  −
| 0x%08X_0x%08X
  −
| *(u32*)(errinfo + 0x18), *(u32*)(errinfo + 0x1C)
  −
| Application ID?
  −
|-
  −
| ADR
  −
| 0x%08X
  −
| *(u32*)(errinfo + 8)
  −
| Address where the error was thrown from?
  −
|-
  −
| RSL
  −
| 0x%08X
  −
| *(u32*)(errinfo + 4)
  −
| Error code
  −
|-
  −
| Level
  −
| %d
  −
| *(u32*)(errinfo + 4) & 0x80000000 ? (*(u32*)(errinfo + 4) >> 27) - 0x20 :  *(u32*)(errinfo + 4) >> 27
  −
| Error code level
  −
|-
  −
| Summary
  −
| %d
  −
| (*(u32*)(errinfo + 4) & 0x7E00000) >> 21
  −
| Error code summary
  −
|-
  −
| Module
  −
| %d
  −
| (*(u32*)(errinfo + 4) & 0x3FC00) >> 10
  −
| Error code module
  −
|-
  −
| Desc
  −
| %d
  −
| *(u32*)(errinfo + 4) & 0x3FF
  −
| Error code description
  −
|-
  −
| Datetime
  −
| %04d/%02d/%02d %02d:%02d:%02d
  −
| ?
  −
| ?
  −
|}
  −
 
  −
= output, where *((u8*)errinfo) == 4 =
  −
{| class="wikitable" border="1"
  −
|-
  −
! Entry
  −
! Format string
  −
! Format args
  −
! Description
  −
|-
  −
| PID
  −
| 0x%08X_0x%08X
  −
| *(u32*)(errinfo + 0x10), *(u32*)(errinfo + 0x14)
  −
| Process ID
  −
|-
  −
| REV
  −
| %d
  −
| *(u16*)(errinfo + 2) <nowiki>|</nowiki> (*(u8*)(errinfo + 1) << 16)
  −
| ?
  −
|-
  −
| AID
  −
| 0x%08X_0x%08X
  −
| *(u32*)(errinfo + 0x18), *(u32*)(errinfo + 0x1C)
  −
| Application ID?
  −
|-
  −
| RSL
  −
| 0x%08X
  −
| *(u32*)(errinfo + 4)
  −
| Error code
  −
|-
  −
| Level
  −
| %d
  −
| *(u32*)(errinfo + 4) & 0x80000000 ? (*(u32*)(errinfo + 4) >> 27) - 0x20 :  *(u32*)(errinfo + 4) >> 27
  −
| Error code level
  −
|-
  −
| Summary
  −
| %d
  −
| (*(u32*)(errinfo + 4) & 0x7E00000) >> 21
  −
| Error code summary
  −
|-
  −
| Module
  −
| %d
  −
| (*(u32*)(errinfo + 4) & 0x3FC00) >> 10
  −
| Error code module
  −
|-
  −
| Desc
  −
| %d
  −
| *(u32*)(errinfo + 4) & 0x3FF
  −
| Error code description
  −
|-
  −
| ?
  −
| %0.*s
  −
| 0x2E, for (int i = 0; i < 2; i++) (errinfo + (((i << 3) - i) + (i << 4)) << 1) + 0x20
  −
| ?
  −
|-
  −
| Datetime
  −
| %04d/%02d/%02d %02d:%02d:%02d
  −
| ?
  −
| ?
   
|}
 
|}
516

edits

Navigation menu