Вы можете иметь взгляд на ptrace.h
и calling.h
файлы, которые имеют некоторый C-структуру , определяющие расположение стека кадров и соглашение о вызовах (они могут быть найдены в тех же папках , как frame.h
Кроме того, заголовочный файл elfcore.h
включенный в проект gperftools, может предоставить полезную информацию о фреймах стека вызовов.
Также, если вы так склонны, вы можете посмотреть книги по сборке и разборке x86 в Wikibooks. У них довольно много полезной информации (как высокого, так и низкого уровня) относительно стековых фреймов и деталей соглашения о вызовах.
С точки зрения frame.h
, вызов sudo find / -name "frame.h"
в моей установке Xubuntu 12.04 возвращает следующее:
/usr/src/linux-headers-3.2.0-23/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-33/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-35/arch/x86/include/asm/frame.h
/usr/src/linux-headers-3.2.0-34/arch/x86/include/asm/frame.h
Неудивительно, что между файлами, перечисленными выше, нет изменений в файле, и вряд ли вы увидите какие-либо изменения по причинам совместимости (конечно, это зависит от архитектуры вашей системы).