Ich möchte die Speicherverwaltung des Linux-Kernels lesen und verstehen (insbesondere defrag \ compaction \ migration).
Also, ich deaktiviere die Optimierung für die Größe in .config
(natürlich mit make menuconfig) und kompiliere ... Das lässt mich noch mit einem optimierten Kernel.
HINWEIS: Wenn ich optimized kernel sage, meine ich, dass wenn ich gdb
verwende und es next
sage, dass es herumspringt. Ich will das nicht, ich möchte dem Code Zeile für Zeile folgen können, so wie ich es mit einer einfachen Hallo-Welt tun würde.
Als nächstes bearbeite ich Makefile
und vertausche -O2
mit -O0
, was dazu führt, dass die Dinge nicht mehr funktionieren.
Ich fand dies , aber ich nicht Ich weiß nicht, welche Dateien ich brauche, weil ich nicht weiß, wie weit das Kaninchenloch reicht.
Gibt es eine allgemeinere Option, die ich verwenden kann? Ich verstehe die Konzepte der Speicherverdichtung; Ich möchte jedoch sehen, wo alles passiert und wie es genau passiert.
Sie können den Kernel nicht de-optimieren. Möglicherweise können Sie bestimmte Funktionen wie folgt deaktivieren:
%Vor%Aber der Kernel als Ganzes benötigt -O2, weil der Code selbst mit Annahmen geschrieben ist, dass bestimmte Funktionen in einer bestimmten Weise optimiert werden.
Tut mir leid, aber du wirst wirklich wissen müssen, wie groß das Kaninchenloch ist, das du untergehen willst.
Tags und Links kernel linux debugging linux-kernel gdb