Als «gdb» getaggte Fragen

90
gdb: "Es wird keine Symboltabelle geladen"

Ich erhalte immer wieder diese Fehlermeldung, wenn ich versuche, einen Haltepunkt in gdb hinzuzufügen. Ich habe diese Befehle zum Kompilieren verwendet: gcc -g main.c utmpib2.c -o main.o and: cc -g main.c utmpib2.c -o main.o and also: g++ -g main.c utmpib2.c -o main.o Ich habe auch "-ggdb"...

89
GDB: break wenn Variable gleichwertig ist

Ich möchte, dass GDB einen Haltepunkt setzt, wenn eine Variable einem von mir festgelegten Wert entspricht. Ich habe dieses Beispiel ausprobiert: #include <stdio.h> main() { int i = 0; for(i=0;i<7;++i) printf("%d\n", i); return 0; } Ausgabe von GDB: (gdb) break if ((int)i == 5) No default...

89
Was ist der Unterschied zwischen gcc -ggdb und gcc -g

Wenn ich gcc zum Kompilieren von C-Programmen verwende, verwende ich normalerweise -geinige Debug-Informationen in die elf-Datei, damit gdb mir bei Bedarf helfen kann. Ich bemerkte jedoch, dass einige Programme verwenden -ggdb, da dies die Debug-Informationen gdb-freundlicher machen soll. Wie...

88
Wie führe ich die ausführbare Datei automatisch in GDB aus?

Ich hätte gdbdie ausführbare Datei gerne sofort ausgeführt, als hätte ich "run" eingegeben (Motivation: Ich mag es nicht, "run" einzugeben). Eine Möglichkeit besteht darin, den Befehl gdbwie folgt zu leiten : $ echo run | gdb myApp Das Problem bei diesem Ansatz ist jedoch, dass Sie die...

85
Wie ändere ich den Speicherinhalt mit GDB?

Ich weiß, dass wir verschiedene Befehle verwenden können, um auf den Speicher zuzugreifen und ihn zu lesen: zum Beispiel print, p, x ... Aber wie kann ich den Speicherinhalt an einem bestimmten Ort ändern (während des Debuggens in GDB)?

83
Die Verwendung von gdb für einstufigen Assembler-Code außerhalb der angegebenen ausführbaren Datei führt zu dem Fehler "Grenzen der aktuellen Funktion können nicht gefunden werden".

Ich bin außerhalb der ausführbaren Zieldatei von gdb und habe nicht einmal einen Stapel, der diesem Ziel entspricht. Ich möchte sowieso in einem Schritt arbeiten, damit ich überprüfen kann, was in meinem Assemblycode vor sich geht, da ich kein Experte für x86-Assembly bin. Leider weigert sich gdb,...

77
Was bedeutet <Wert optimiert aus> in GDB?

(gdb) n 134 a = b = c = 0xdeadbeef + ((uint32_t)length) + initval; (gdb) n (gdb) p a $30 = <value optimized out> (gdb) p b $31 = <value optimized out> (gdb) p c $32 = 3735928563 Wie kann gdb meinen Wert optimieren?

75
Wie gehe ich zur vorherigen Zeile in GDB?

Ist es in gdb möglich, zu einer Zeile vor der aktuell ausgeführten Zeile zu wechseln? z.B: void my_fun( somePtrType** arr,int start,int end) { // arr is an array of pointers to somePtrType //line a ... some assignments swap(&arr[ind1] , &arr[ind2] ) ; //line b (current line...

73
Wie kann ich den Stack-Frame mit GDB untersuchen?

Im Moment habe ich GDB verwendet, um eine Binärdatei zu zerlegen und verschiedene Register und so weiter zu überprüfen. Gibt es einen einfachen Befehl, um alles auf dem Stapel zu untersuchen? Kann dies auf alles in einer Funktion beschränkt werden?

72
So hängen Sie einen Prozess in gdb an

Ich habe ein einfaches C-Programm, das einen Prozess abspaltet und dann eine ausführbare Datei ausführt. Ich möchte den untergeordneten Prozess an gdb anhängen. Ich führe das Hauptprogramm in einer Konsole aus und öffne eine andere Konsole, um die PID des untergeordneten Prozesses zu finden. Dann...