Ich arbeite an einer Multithread-Anwendung und möchte sie mit GDB debuggen. Das Problem ist, einer meiner Threads stirbt immer wieder mit der Nachricht: pure virtual method called terminate called without an active exception Abort Ich kenne die Ursache dieser Nachricht, habe aber keine Ahnung, wo sie in meinem Thread auftritt. …
Ich habe ein Programm, das Eingaben von stdin und einige Parameter von der Kommandozeile übernimmt. Es sieht aus wie das: cat input.txt > myprogram -path "/home/user/work" Ich versuche, den Code mit gdb in emacs zu debuggen. Mit Mx gdb versuche ich, das Programm mit dem folgenden Befehl zu laden: gdb …
Beim Kompilieren von C-Quellcode mit gcc oder Clang verwende ich immer das -gFlag, um Debugging-Informationen für gdb zu generieren. gcc -g -o helloworld helloworld.c Mir ist aufgefallen, dass einige Leute -g3stattdessen empfehlen . Was ist der Unterschied zwischen den -gund -g3Flags? Gibt es auch einen Unterschied zwischen -gund -ggdb?
Derzeit erhalte ich beim Drucken des Werts einer Variablen vin GDB ( print v) eine Ganzzahl. Ist es möglich, dass GDB solche ganzzahligen Variablen hexadezimal oder binär druckt?
Ich bin neu bei GDB, daher habe ich einige Fragen: Wie kann ich den Inhalt des Stapels anzeigen? Beispiel: Um den Inhalt des Registers zu sehen, tippe ich info registers. Was sollte es für den Stapel sein? Wie kann ich den Inhalt von sehen $0x4(%esp)? Wenn ich print /d $0x4(%esp)tippe, …
Ich versuche, eine GDB-Sitzung mithilfe des --commandFlags zu automatisieren . Ich versuche, einen Haltepunkt für eine Funktion in einer gemeinsam genutzten Bibliothek festzulegen (das Unix-Äquivalent einer DLL). Meine cmds.gdb sieht folgendermaßen aus: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r Ich erhalte jedoch Folgendes: shlomi: ~ / progs / bugs-external / kde …
Angenommen, wir haben so etwas: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } Ich möchte in der Lage sein, den Inhalt der Karte zu überprüfen, auf der das Programm von gdb ausgeführt wird. Wenn ich versuche, den Indexoperator zu verwenden, erhalte ich: (gdb) …
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" anstelle von "-g" versucht …
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 breakpoint address now. (gdb) …
0x0000000000400448 <main+0>: push %rbp 0x0000000000400449 <main+1>: mov %rsp,%rbp 0x000000000040044c <main+4>: mov $0x6,%eax 0x0000000000400451 <main+9>: leaveq 0x0000000000400452 <main+10>: retq Ich habe es versucht: breaki 0x0000000000400448 aber es scheint, dass es keinen solchen Befehl gibt. Hat gdb eine solche Funktion?
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 unterscheiden sie sich und welche wird empfohlen? Hinweis: Ein Link zu …
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 Interaktivität verlieren gdb, …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.