4

Книга, которую я читаю, относится к включаемому файлу, который показывает, как выглядит фрейм стека в системе UNIX.

В частности: /usr/include/sys/frame.h

У меня проблемы с поиском современного эквивалента. У кого-нибудь есть идея? Я на Ubuntu 12.10.


Кстати, это описание стековых фреймов и записей активации, которые я хочу - не обязательно, что реликт файла. Эта информация была сохранена в этом файле, "назад в день", хотя.

1 ответ1

2

Вы можете иметь взгляд на 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

Неудивительно, что между файлами, перечисленными выше, нет изменений в файле, и вряд ли вы увидите какие-либо изменения по причинам совместимости (конечно, это зависит от архитектуры вашей системы).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .