Showing changes from revision #1 to #2:
Added | Removed | Changed
The raw exception dump file format is based around a simple sequence of variable-length blocks. Each block has a two word header, as follows:
Word | Use |
---|---|
0 | Block length in bytes, including header. Multiple of 4. |
1 | Block type: |
0 → Memory dump | |
1 → OS_ReadSysInfo 6 item(s) | |
2 → ARM register dump | |
3 → Error block | |
4 → OS_Memory 16 item(s) |
Apart from register and error blocks, there can be multiple blocks of the same type.
Other block types may be added in future.
Word | Use |
---|---|
2 | Base logical address (word aligned) |
3+ | Data |
Word | Use |
---|---|
2 | Base item index |
3+ | Corresponding OS_ReadSysInfo 6 items |
Word | Use |
---|---|
2 | R0 |
3 | R1 |
4 | R2 |
5 | R3 |
6 | R4 |
7 | R5 |
8 | R6 |
9 | R7 |
10 | R8 |
11 | R9 |
12 | R10 |
13 | R11 |
14 | R12 |
15 | R13 |
16 | R14 |
17 | R15 |
18 | CPSR |
19 | R13_usr |
20 | R14_usr |
21 | R13_svc |
22 | R14_svc |
23 | SPSR_svc |
24 | R13_irq |
25 | R14_irq |
26 | SPSR_irq |
27 | R13_abt |
28 | R14_abt |
29 | SPSR_abt |
30 | R13_und |
31 | R14_und |
32 | SPSR_und |
Note that because ABT and UND modes are used by the processor for handling exceptions, the ABT and UND registers (and stacks) as captured in the dump will not reflect their state at the time of the exception.
Word | Use |
---|---|
2 | Error number |
3+ | Error message text |
Word | Use |
---|---|
2 | Base item index |
3+3*N | Base of area (R1) |
4+3*N | Address space allocated (R2) |
5+3*N | Actual memory used (R3) |
The content of this block can be used to allow processing tools to identify which memory dump corresponds to which of the system stacks.