Ok, this is gonna be a long question. I\'m trying to understand how \"buffer overflow\" works. I am reading Smashing the stack for fun and profit by aleph1 and have just got
CFI stands for call frame information. It's the way the compiler describes what happens in a function. It can be used by the debugger to present a call stack, by the linker to synthesise exceptions tables, for stack depth analysis and other things like that.
Effectively, it describes where resources such as processor registers are stored and where the return address is.
CFA stands for call frame address, which mean the address the stack pointer location of the caller function. This is needed to pick up information about the next frame on the stack.