Als «gdb» getaggte Fragen

Verwenden Sie dieses Tag für Probleme im Zusammenhang mit GDB, dem Standard-Debugger für das GNU-Softwaresystem.

2
Kerndatei in gdb speichern
Ist es möglich, die Kerndatei mit gdb zu speichern / zu sichern? Manchmal möchte ich eine Datei speichern, um sie später zu analysieren.
88 gdb  core-file 


3
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)?
85 c  linux  memory  gdb 

3
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, dieses einfache Debuggen …

8
Warum springt GDB unvorhersehbar zwischen Zeilen und druckt Variablen als "<Wert optimiert aus>"?
Kann jemand dieses Verhalten von GDB erklären? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

4
Werden "EXC_BREAKPOINT (SIGTRAP)" - Ausnahmen durch das Debuggen von Haltepunkten verursacht?
Ich habe eine Multithread-App, die auf allen meinen Testmaschinen sehr stabil ist und für fast jeden meiner Benutzer stabil zu sein scheint (basierend auf keinen Beschwerden über Abstürze). Die App stürzt jedoch häufig für einen Benutzer ab, der so freundlich war, Absturzberichte zu senden. Alle Absturzberichte (~ 10 aufeinanderfolgende Berichte) …


6
Was bedeutet <Wert optimiert aus> in GDB?
(gdb) n 134 a = b = c = 0xdeadbeef + ((uint32_t)length) + initval; (gdb) n (gdb) p a $30 = &lt;value optimized out&gt; (gdb) p b $31 = &lt;value optimized out&gt; (gdb) p c $32 = 3735928563 Wie kann gdb meinen Wert optimieren?
77 gdb 


9
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(&amp;arr[ind1] , &amp;arr[ind2] ) ; //line b (current line ) } Ich bin …
75 debugging  gdb 


3
Was sind die besten Möglichkeiten, um eine GDB-Debugging-Sitzung zu automatisieren?
Verfügt GDB über einen integrierten Skriptmechanismus, sollte ich ein Expect-Skript codieren oder gibt es eine noch bessere Lösung? Ich sende jedes Mal die gleiche Befehlsfolge und speichere die Ausgabe jedes Befehls in einer Datei (höchstwahrscheinlich unter Verwendung des in GDB integrierten Protokollierungsmechanismus, es sei denn, jemand hat eine bessere Idee).

3
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?
73 gdb  stack 

3
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 starte ich gdb mit dem …
72 unix  gdb 

6
Bessere Variablenerkundung beim Debuggen von C ++ - Code mit Eclipse / CDT
Bei Verwendung von Eclipse und CDT zum Debuggen von C ++ - Code sind die variablen Fenster umständlich und für in der Standardvorlagenbibliothek oder in boost (z. B. shared_ptr) definierte Typen nicht sehr informativ. Nur ein Beispiel, wie dies für einen std :: vector aussehen könnte: bar {…} std::_Vector_base&lt;TSample&lt;MyTraits&gt;, std::allocator&lt;TSample&lt;MyTraits&gt; …
68 c++  eclipse  gdb  eclipse-cdt 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.