Wie verwenden Sie gdb, auf c++ - header-Dateien?
Habe ich versucht zu suchen, diese Frage online, aber es scheint, dass ich kann nicht finden, eine gute Lösung für mein problem. Naja, ich versuche den Gebrauch von gdb zum Debuggen meiner c++ - Programm. Und das Programm besteht aus einer einfachen main.cpp und ein Modell.h. Und die Zusammenstellung Befehl ist
g++ -Wall -g -c main.cpp
g++ -Wall -g main.o -o OUTPUT
Als fast alle der Algorithmus ist im Modell gespeicherten.h, ich brauche, um zu Debuggen, die header-Datei und nicht in der cpp-Datei. Allerdings, wenn ich versuchte, eine break-Punkt auf dem Kopf wie
tbreak model.h:163
gdb immer geben Sie mir eine Nachricht, dass"Keine source-Datei mit dem Namen TNFmodel.h".
In einer anderen Frage breakpoints im GDB, ich sah die Lösung durch das hinzufügen der Ordner, der mit dem Kopf in die Bibliothek, indem Sie "dir". Aber meine header-Datei ist bereits im source Ordner, und nach dem Versuch
dir ./
Das problem unterhält.
Also weiß jemand was falsch ist? Wie den Gebrauch von gdb zum Debuggen einer header-Datei?
- war der header auch aus, dass die Lage beim kompilieren? Vielleicht kannst du die Ausgabe von gdb gibt bei der Eingabe
info sources
. - Autsch... ich Quellen geprüft, und sah das problem jetzt... Der Fall, der Brief war nicht entsprechen. Naja, ich weiß nicht, wie ich übergeben kompilieren... Aber vielleicht ist es weil ich bin mit mac, und manchmal Fälle sind nicht empfindlich beim kompilieren. Nach der Korrektur der Fall, wird der gdb funktioniert gut für den Kopf. Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorgeschlagen von https://stackoverflow.com/users/760746/nobody, ein Weg, um sicherzustellen, dass der header in den Quellen ist zu veryfy es durch die überprüfung
Nach der Gewährleistung der header selbst werden in den Quellen(in meinem Fall, das problem ist, dass der Fall von einem Brief, in dem header-Namen vermischt wurde, und irgendwie ging es durch das kompilieren auf meinem mac book), einfügen breakpoint in den Zeilen von einer header-Datei funktioniert Prima.
Versuchen, brechen Sie mit Ihrer Klasse/name der Methode, wie diese:
Was ich gefunden habe ist, dass ist, dass die Datei-Namen werden manchmal verkürzt. Mit
info sources
ich war in der Lage zu finden, die verkürzten Namen, der GCC verwendet. Wenn ich den Haltepunkt mit der verkürzten Datei-name, GDB richtig der der Haltepunkt gesetzt wurde.Beispielsweise die Datei
CommonLibrary\headers\Endian.h
wurde geändert, umCOM~2\headers\Endian.h
Diese auf Windows 10, das laufen mingw-64.