Где находится файл frame.h (или его эквивалент) в современных ОС Linux?

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

Особенно: /usr/include/sys/frame.h

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


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

1 ответ

Решение

Возможно, вы захотите взглянуть на ptrace.h а также calling.h файлы, которые имеют некоторые C-структуры, определяющие структуру фрейма стека и соглашения о вызовах (их можно найти в тех же папках, что и frame.h). Кроме того, elfcore.h Заголовочный файл, включенный в проект gperftools, может предоставить полезную информацию о кадрах стека вызовов.

Также, если вы так склонны, вы можете посмотреть книги по сборке и разборке x86 в Викиучебниках. У них достаточно много полезной информации (как высокого, так и низкого уровня) относительно стековых фреймов и деталей соглашения о вызовах.


С точки зрения 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

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

Другие вопросы по тегам