die .out ausführbare Datei erstellen, muss ich eingeben:C-Programmierung: Wie gdb mit Makefile und Befehlszeilenargumente zu verwenden?
$: make
$: myprogram.out name.ged
Mein Programm ein Argument Befehlszeile enthält, so dass die „name.ged“.
Immer, wenn ich gdb laufen nach einem Segmentierungsfehler bekommen (core dumped), I eingeben:
$: gdb a.out core
(gdb): bt
ich dann die Rückverfolgung Befehl verwenden, und gdb kehrt:
#0 0x4a145155 in ??()
#1 0x08a16ce0 in ??()
ich sogar versucht, mit dem up-Befehl t den Stapel nach oben, aber immer noch kein Glück. Ich kann nicht sagen, welche Zeile in meinem Programm mir den Seg-Fehler gibt. gdb arbeitet mit meinen anderen Programmen, die kein Makefile und keine Befehlsargumente enthalten, also frage ich mich, ob meine Befehle falsch sind.
Sie müssen sich mit dem '-g' Flagge kompilieren. Da Sie das Makefile nicht veröffentlicht haben, kann ich Ihnen keine weitere Hilfe geben. –
Also wäre der Befehl gcc -g myprogram.out name.ged? – Bonnie
In der make-Datei gibt es einen Befehl zum Kompilieren des Codes (gcc ...) Dieser Befehl benötigt das Flag -g, um zusätzliche Informationen hinzuzufügen, damit gdb effektiv funktioniert. –