Frage

ich denke, das früher gefragt worden sein, aber ich kann man nicht finden, die meine Anforderungen erfüllt.

Ich bin Debugging-Projekt (infact zu verstehen versuchen) ein großes, indem Sie versuchen, den Code Fluss in verschiedenen Testsuites zu analysieren. Aber wenn ich versuche, Dateien an einigen Haltepunkte zu setzen, erhalte ich die Fehlermeldung „keine Quelldatei namens Dateiname gefunden“.
Also meine Frage ist:

  1. Kann GDB nur Grenzwerte für die Quelldateien annehmen, wenn der Code Fluss eintritt.?
  2. Kann ich Haltepunkte über den gesamten Zeilen einer Datei mit so etwas wie b filename:*
  3. Wird ein Breakpoint in Header-Datei akzeptiert werden als Header-Dateien während der Kompilierung nur angehängt werden?

Keine Erkenntnisse sind mehr als willkommen.

Bearbeiten
Ich habe diese Probleme mit einigem Code Hallo Welt und fand gleiche Ergebnisse wie noch in eines der answers.but mein Problem im aktuellen Projekt hingewiesen bleibt. Ich bekomme immer noch den gleichen Fehler, auch wenn ich die bearbeitete Ausgabe der gleichen Linie sehen, die nicht als Haltepunkt akzeptiert wird.

Bearbeiten 2
Ich habe es funktioniert aber nicht verstehen, wie und warum es funktioniert .. ??


(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
No source file named /home/neeraj/BTP/trunk/include/header.h:872
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) b /home/neeraj/BTP/trunk/src/driver.cpp:2
Breakpoint 1 at 0x806c61a: file ../../../trunk/src/driver.cpp, line 2.
(gdb) b /home/neeraj/BTP/trunk/include/header.h:872
Breakpoint 2 at 0x8052fa0: file ../../../trunk/include/header.h:872, line 872.
(gdb)

Jede tiefere Einblicke ..?

War es hilfreich?

Lösung

Die andere Sache, außer Shared Libraries zu hüten ist, dass gdb Source-Dateinamen in das Verzeichnis relativ sind, wo der Code kompiliert wurde. Wenn Sie nicht mit absoluten Pfadnamen zusammengestellt haben, verwenden Sie den Befehl dir die Kompilation Verzeichnis in die Liste der Orte hinzufügen gdb für Quellcode sucht.

Und ein Hinweis: Ich finde ich bin wild produktiver, wenn ich die Data Display Debugger (DDD) grafisches Frontend gdb.

Andere Tipps

  1. Nein.
  2. Nein.
  3. Ja.

Stellen Sie sicher, dass Sie mit -g (Debug) Option kompilieren. Stellen Sie sicher, dass der sourcepaths richtig eingestellt ist. Verwenden Verzeichnis, Verzeichnisse anzeigen und dir Befehle / Set zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top