Welche nützlichen GDB-Skripte hast du benutzt / geschrieben?
Menschen nutzen gdb - und ausschalten für das Debuggen
natürlich gibt es viele andere debugging-tools
über die vielfältigen Betriebssysteme, mit und ohne GUI und
vielleicht andere ausgefallene IDE-features.
Ich würde gerne wissen, was nützlich gdb von Skripts, die Sie geschrieben haben, und mochte.
Während, ich meine nicht einen dump von Befehlen in einer something.gdb
- Datei, die Sie der Quelle zu ziehen und ein paar Daten, wenn gemacht, dass Sie Ihren Tag, gehen Sie vor und sprechen darüber.
- Können denken bedingte Verarbeitung, Regelkreise und Funktionen geschrieben für mehr elegante und raffinierte Programmierung, debug und, vielleicht sogar für das whitebox-Test
- Interessant, wenn Sie beginnen debugging von remote-Systemen (sagen wir, über einen Seriell - /ethernet-Schnittstelle)
- Und was ist, wenn das Ziel einer multi-Prozessor - (und Multithread -) system
Lassen Sie mich ein einfacher Fall als Beispiel...
Sagen,
Einem Skript, das durchzogen ist Seriell über Einträge
suchen Sie einen schlechten Eintrag in einer großen hash-Tabelle
implementiert ist, die auf einer embedded-Plattform.
Dass mir geholfen Debuggen eines gebrochenen hash-Tabelle einmal.
InformationsquelleAutor der Frage nik | 2009-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesem script nicht von mir geschrieben, ziemlich druckt STL-Container wie vector, map, etc: http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt
Total genial.
InformationsquelleAutor der Antwort Artem Russakovskii
Beim Debuggen einer AOLserver SIGSEGV abstürzt, habe ich das folgende Skript zum prüfen der TCL-Ebene call-stack von GDB:
InformationsquelleAutor der Antwort mormegil
1. Wenn Sie versuchen, um einige 3rd-party-closed-source-DLLs arbeiten mit unserem Projekt unter Mono -, es gab sinnlose Fehler. Daher Griff ich auf die Skripte aus der Mono-Projekt.
2. Ich hatte auch ein Projekt, dass könnte es dump eigene Informationen zu stdout für den Einsatz in der GDB, also an einem Haltepunkt, konnte ich die Funktion ausführen, dann die " cut-n-paste-seinen Ausgang in den GDB.
[Bearbeiten]
3. Die meisten meiner GCC/G++ verwenden, ist schon eine Weile her, aber ich erinnere mich auch mit einem makro, um die Vorteile der Tatsache, dass GDB wusste, dass die Mitglieder von einigen undurchsichtigen Daten, die ich hatte (die Bibliothek wurde kompiliert mit debug). Das war enorm hilfreich.
4. Und ich fand diese auch. Es erstellt eine Liste von Objekten (von einem globalen "headMeterFix" SLL), enthalten, unter anderem dynamische arrays von einem anderen Objekt geben. Eines der wenigen Male, die ich verwendet habe verschachtelten Schleifen in einem makro:
InformationsquelleAutor der Antwort NVRAM