Nächste: Fehlersuchinformationen erneuern, Nach oben: Dateien zur Fehlersuche installieren [Inhalt][Index]
Das Problem bei Informationen zur Fehlersuche ist, dass dadurch einiges an Plattenplatz verbraucht wird. Zum Beispiel steuern die Informationen zur Fehlersuche in der GNU-C-Bibliothek mehr als 60 MiB bei. Als ein Nutzer ist es deswegen in der Regel nicht möglich, sämtliche Fehlersuchinformationen für alle installierten Programme zu speichern. Andererseits sollten Platzeinsparnisse nicht auf Kosten der Fehlersuche gehen – besonders im GNU-System, wo es Nutzern leicht fallen sollte, ihre Freiheit, wie sie ihre Rechner benutzen, auszuüben (siehe GNU-Distribution).
Glücklicherweise gibt es in den GNU Binary Utilities (Binutils) und GDB einen Mechanismus, mit dem Nutzer das Beste aus beiden Welten bekommen: Informationen zur Fehlersuche können von den davon beschriebenen Binärdateien losgelöst und in separaten Dateien gespeichert werden. GDB kann dann Fehlersuchinformationen laden, wenn diese Dateien verfügbar sind (siehe Separate Debug Files in Debugging with GDB).
Die GNU-Distribution nutzt diesen Mechanismus aus, indem sie Informationen
zur Fehlersuche im Unterverzeichnis lib/debug
einer separaten
Paketausgabe speichert, die den fantasielosen Namen debug
trägt. Mit
dem folgenden Befehl können Sie zum Beispiel Informationen zur Fehlersuche
für die GNU-C-Bibliothek und für GNU Guile installieren:
guix install glibc:debug guile:debug
GDB muss dann angewiesen werden, im Profil des Nutzers nach Informationen
zur Fehlersuche zu schauen, indem Sie die Variable
debug-file-directory
entsprechend setzen (vielleicht möchsten Sie die
Variable in der Datei ~/.gdbinit festlegen, siehe Startup in Debugging with GDB):
(gdb) set debug-file-directory ~/.guix-profile/lib/debug
Von da an wird GDB auch aus den .debug-Dateien unter ~/.guix-profile/lib/debug auslesbare Informationen zur Fehlersuche verwenden.
Im Folgenden sehen Sie ein alternatives GDB-Skript, um mit anderen Profilen zu arbeiten. Es macht Gebrauch von der optionalen Guile-Einbindung in GDB. Dieses Schnipsel wird auf Guix System nach Voreinstellung in der ~/.gdbinit-Datei zur Verfügung gestellt.
guile (use-modules (gdb)) (execute (string-append "set debug-file-directory " (or (getenv "GDB_DEBUG_FILE_DIRECTORY") "~/.guix-profile/lib/debug"))) end
Des Weiteren werden Sie höchstwahrscheinlich wollen, dass GDB den Quellcode,
der auf Fehler untersucht wird, anzeigen kann. Dazu müssen sie den
Quellcodes des Pakets, für das Sie sich interessieren (laden Sie ihn mit
guix build --source
herunter; siehe Aufruf von guix build
), und
dann weisen Sie GDB an, in dem Verzeichnis zu suchen, indem Sie den
directory
-Befehl benutzen (siehe directory
in Debugging with GDB).
Der Mechanismus mit der debug
-Ausgabe wird in Guix als Teil des
gnu-build-system
implementiert (siehe Erstellungssysteme). Zurzeit
ist sie optional – nur für Pakete, in deren Definition ausdrücklich
eine debug
-Ausgabe deklariert wurde, sind Informationen zur
Fehlersuche verfügbar. Um zu überprüfen, ob Pakete eine debug
-Ausgabe
mit Informationen zur Fehlersuche haben, benutzen Sie guix package
--list-available
(siehe guix package
aufrufen).
Lesen Sie weiter, um zu erfahren, wie Sie mit Paketen ohne eine
debug
-Ausgabe umgehen können.
Nächste: Fehlersuchinformationen erneuern, Nach oben: Dateien zur Fehlersuche installieren [Inhalt][Index]