Describes 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.
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).
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.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.