Você pode querer dar uma olhada nos arquivos ptrace.h
e calling.h
, que têm algumas estruturas C que definem o layout do quadro da pilha e as convenções de chamada (elas podem ser encontradas nas mesmas pastas que frame.h
). Além disso, o arquivo de cabeçalho elfcore.h
incluído com o projeto do gperftools pode fornecer algumas informações úteis sobre os quadros de pilha de chamadas.
Além disso, se você quiser, pode querer olhar para a Assembleia x86 e x86 Desmontagem livros sobre Wikilivros. Eles têm muitas informações úteis (alto e baixo nível) sobre frames de pilha e detalhes da convenção de chamadas.
Em termos de frame.h
, chamar sudo find / -name "frame.h"
na minha instalação do Xubuntu 12.04 retorna o seguinte:
/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
Não surpreendentemente, não há nenhuma alteração no arquivo entre as versões do kernel listadas acima, e é improvável que você veja quaisquer alterações por razões de compatibilidade (claro, isso depende da arquitetura do seu sistema).