diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-892931C3-E560-54AA-A9CB-2820BF025E52.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-892931C3-E560-54AA-A9CB-2820BF025E52.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,70 @@ + + + + + +Fault +Information CommandsDescribes how to use the f command to get information +about the fault type. +

There are two possibilities:

+ +

To start, use the f command. +You will see something like this:

+Fault Category: Exception Fault Reason: 10000000 +ExcId 00000001 CodeAddr f800415c DataAddr 00000000 Extra 00000005 +Exc 1 Cpsr=60000013 FAR=00000000 FSR=00000005 + R0=64007328 R1=00000000 R2=00000000 R3=00000001 + R4=64007328 R5=640074c0 R6=00000000 R7=f8047ba4 + R8=64006f80 R9=64006fec R10=00000013 R11=64006ec4 +R12=00000001 R13=000029b4 R14=0000016c R15=f800415c +R13Svc=64006ea8 R14Svc=f8002b2c SpsrSvc=600000ff + +

The Fault Category field shows the type of fault, in this case an +exception.

+
Unhandled +exceptions

If the Fault Category is Exception, then +the fault is caused by an unhandled processor exception. You can get further +information on the type of exception by looking at the first three lines of +the generated output:

Fault Category: Exception Fault Reason: 10000000 +ExcId 00000001 CodeAddr f800415c DataAddr 00000000 Extra 00000005 +Exc 1 Cpsr=60000013 FAR=00000000 FSR=00000005

The CodeAddr and DataAddr fields +show the address of the instruction that caused the exception and, depending +on the type of exception and instruction, the address of the data the instruction +was trying to access. You can use the CodeAddr value to find +the function which was being executed by using +the MAKSYM tool.

The number after ExcId is +the type of exception, in hexadecimal, and is one of the ARM exception types. The meaning of the numbers depends on the type +of processor.

    +
  • If the exception is +a prefetch abort, then the code address is invalid.

  • +
  • A data abort means that +the code address is invalid.

  • +

The number after FAR is the fault address register; +this is the address that caused the fault.

The number after FSR is +the fault +status register value and shows why the MMU raised an exception.

The +number after CPSR is the value of the CPU's CPSR register when the exception +occurred. The 5 least-significant bits of the CPSR register indicate the ARM +processor modes (CPSR register).

+
Panics

If +the Fault Category is not Exception, then the fault is due to +a panic. In this case the only other valid field is the Fault reason; +the values of all other fields are meaningless.

The panic number is +the low 16-bits of the fault reason, shown in hexadecimal.

For example, +a KERN 27 panic would generate:

Fault Category: KERN Fault Reason: 0000001b +ExcId ffffee5e CodeAddr ffff99a9 DataAddr bfff3e54 Extra fffec4cd +

If the panic is KERN 4, then a thread or process marked as +protected has panicked. For other panics, kernel side code has panicked; this +code is either in the kernel itself or in a device driver.

See Kernel State Information +Commands to find out which process and thread were running at the time +of the panic.

+
\ No newline at end of file