I am trying out a stack dumping program that dumps the content of the complete call stack on a Intel Linux box. I noticed that generally the stack frames are of the following format(noted with intel compiler)
args to next func
temporary storage / padding
The ebp and return pc can be easily traversed and highlighted. Local variables though not dynamic determining the boundaries to mark them out is one of my intentions. The temporary storage seems to be completely under the control of the compiler.
Can you point me to some document by which I can know
- what is the size of the temporary storage in any arbitrary stack frame
- what is the boundary of the local variable part
- If I can print variable names and their sizes along side their addresses my routine will be of great value.
Any other regions in the stack frame I am missing ?