Wo befindet sich die frame.h-Datei (oder eine gleichwertige Datei) unter modernen Linux-Betriebssystemen?

707
d0rmLife

Ein Buch, das ich gerade lese, bezieht sich auf eine Include-Datei, die zeigt, wie ein Stack-Frame auf einem UNIX-System aussieht .

Im Speziellen: /usr/include/sys/frame.h

Ich habe Probleme, das moderne Äquivalent zu finden. Hat jemand eine Idee? Ich bin auf Ubuntu 12.10.


Übrigens ist es eine Beschreibung von Stack-Frames und Aktivierungsdatensätzen, die ich möchte - nicht notwendigerweise das Relikt einer Datei. Diese Informationen wurden jedoch "in the day" in dieser Datei gespeichert.

4
Vielleicht `arch / x86 / include / asm / frame.h` in Ihrem Kernel-Header-Verzeichnis? (Vorausgesetzt, Sie sind natürlich auf einem x86-System.) user55325 vor 11 Jahren 0
Jetzt, wo ich es mir anschaue, und im Hinterkopf, dass ich mit dieser Art von Kernel-Kernel nicht wirklich vertraut bin, sieht `sigframe.h` im selben Verzeichnis wahrscheinlicher aus ... hoffentlich kommt jemand mit etwas Erfahrung mit einer echten Antwort. user55325 vor 11 Jahren 0
@ user55325 dein erster Vorschlag ist ** definitiv ein guter Lead **, schau einfach mal rein. Ich bin jedoch nicht * völlig überzeugt * es ist, was mein Autor im Sinn hatte ... mal sehen, was andere zu sagen haben! d0rmLife vor 11 Jahren 0

1 Antwort auf die Frage

2
Breakthrough

Vielleicht möchten Sie sich die Dateien ptrace.hund ansehen calling.h, die über einige C-Strukturen verfügen, die das Stack-Frame-Layout und die Aufrufkonventionen definieren (diese befinden sich in denselben Ordnern wie frame.h). Darüber hinaus kann die im gperftools-Projekt enthaltene elfcore.hHeader-Datei einige nützliche Einblicke in die Aufrufstapel-Frames bieten.

Auch wenn Sie so geneigt sind, möchten Sie vielleicht die x86-Assembly und die x86-Disassembly- Bücher auf Wikibooks lesen. Sie haben eine Menge nützlicher Informationen (sowohl auf hoher als auch auf niedriger Ebene) bezüglich Stack-Frames und Aufrufkonventionen.


In Bezug auf das frame.hAufrufen sudo find / -name "frame.h"meiner Xubuntu 12.04-Installation wird Folgendes zurückgegeben:

/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 

Es ist nicht überraschend, dass zwischen den oben aufgeführten Kernelversionen keine Änderungen an der Datei vorgenommen werden. Es ist unwahrscheinlich, dass Sie aus Kompatibilitätsgründen Änderungen sehen würden (natürlich hängt dies von der Architektur Ihres Systems ab).

Yes, I have looked at that file. I have my doubts it is what the original author referred to. I was wondering if anyone familiar with legacy systems would be able to comment. d0rmLife vor 11 Jahren 0
+1 für `elfcore.h`-Headerdatei. Das ist eher so ...! :) Lesen Sie es jetzt durch. d0rmLife vor 11 Jahren 0
@ d0rmLife hat die Antwort aktualisiert. Vielleicht möchten Sie auch die Datei `ptrace.h` betrachten, die sich ebenfalls in Ihrem Kernel-Header-Dateiverzeichnis befindet. Breakthrough vor 11 Jahren 0
** Toller Fund **, der definitiv die Informationen enthält, nach denen ich gesucht habe. d0rmLife vor 11 Jahren 0
@ d0rmLife Entschuldigung, ein letztes Update. Schauen Sie sich auch die Datei `calling.h` an, die auch sehr nützliche Informationen enthält. Breakthrough vor 11 Jahren 0
Sie haben eine Rolle - ich muss fragen, wie Sie in diesen Header-Dateien gesucht haben? Besser suchen als ich? Vertrautheit mit der Linux-Stack-Zuordnung? d0rmLife vor 11 Jahren 0
@d0rmLife a bit of both. I started looking for where some of the C macros were defined, and which files *those* header files included (and so on and so fourth). I also know calling conventions are closely related with stack frames, so I thought that header might also be of some service. Also if you're inclined, you might want to look at the [x86 Assembly](http://en.wikibooks.org/wiki/X86_Assembly) and [x86 Disassembly](http://en.wikibooks.org/wiki/X86_Disassembly) books on Wikibooks, they have quite a lot of useful information. Breakthrough vor 11 Jahren 1
Hah - schöne Annäherung. Wirklich genial. Ich bin froh, dass ich gefragt habe. Ich werde auf jeden Fall einen Blick darauf werfen. Ich studiere gerade diese beiden Themen! d0rmLife vor 11 Jahren 0