CFI directives
The CFI directives provide C-SPY with information about the state of the calling function(s). Most important of this is the return address, and the value of the stack pointer at the entry of the function or assembler routine. Given this information, C-SPY can reconstruct the state for the calling function, and thereby unwind the stack.
A full description about the calling convention might require extensive call frame information. In many cases, a more limited approach will suffice.
When describing the call frame information, the following three components must be present:
32-bit mode call frame information resources:
Resource | Description |
|---|---|
| The call frames of the stack |
| Processor general-purpose 32-bit registers |
| Stack pointer, |
| Link register, |
| Vector Floating Point (VFP) 64-bit coprocessor register |
| Current program status register |
| Saved program status register |
64-bit mode call frame information resources:
Resource | Description |
|---|---|
| Processor general-purpose 64-bit registers |
| Link register, |
| Stack pointer |
| The call frames of the stack |
| Exception level |
| Vector Floating Point (VFP) 64-bit registers (in reality, they are 128 bits, but the ABI cannot handle this) |