Ich benutze gcc unter GNU / Linux und die Debug-Dateien und Header von libc und libstd ++ sind installiert. Aber ich weiß nicht, wie ich gdb sagen soll, den Quellcode von ihnen zu verwenden, besonders um in libstd ++ zu debuggen. Der Quellcode von libstdc ++ selbst scheint in einer komplizierten Struktur bereitgestellt zu werden. Ich denke, der -Verzeichnis -Befehl ist die richtige Wahl. Ich benutze hier Debian / Ubuntu und downloade die Quelle mit apt-get source libstdc ++ 6 in mein Home-Verzeichnis.
Ich bin mir ziemlich sicher, dass ich vor einigen Jahren keine besonderen Schritte mit Fedora machen musste. Vielleicht war Fedora dafür in besonderer Weise vorbereitet. Ich werde mich also über allgemeine Anweisungen freuen, die zu jeder Distribution passen.
Danke
Aktualisieren
Ich habe herausgefunden, dass ich mit -D_GLIBCXX_DEBUG
zusätzlich zu -g
kompilieren muss, damit der Kompilierbefehl wie $ g++ -o test test.cpp -g -D_GLIBCXX_DEBUG
aussieht.
Außerdem habe ich eine Warnung über fehlende hübsche Drucker erhalten, die ich wie hier beschrieben gelöst habe: Ссылка
Jetzt kann ich in libstdc ++ debuggen, aber ich habe immer diese Nachricht bekommen:
%Vor%Ich muss das -Verzeichnis in gdb nicht auf die heruntergeladene Quelle setzen (ich denke, es wird in meinem Home-Verzeichnis gesucht). Also dachte ich, ich brauche einen anderen Befehl, um das zu beheben, und habe "set substitute-path" gefunden und auf /home/username/gcc-4.7-4.7.2/gcc-4.7.2/libstdc ++ - v3 aber ich arbeite nicht. Warum sucht gdb nach allocator.h am vollständig falschen Ort?
Finde zuerst die Quellen von: - Ссылка
Später kompiliere libstdc ++ mit DEBUG_FLAGS setze es auf ON.
Dann probiere es aus, mit gdb zu debuggen.