Sto lavorando su un'applicazione multithread e voglio eseguirne il debug utilizzando GDB. Il problema è che uno dei miei thread continua a morire con il messaggio: pure virtual method called terminate called without an active exception Abort Conosco la causa di quel messaggio, ma non ho idea di dove si …
Quando compilo il codice sorgente C con gcc o Clang, utilizzo sempre il -gflag per generare le informazioni di debug per gdb. gcc -g -o helloworld helloworld.c Ho notato che alcune persone consigliano -g3invece. Qual è la differenza tra i flag -ge -g3? Inoltre c'è una differenza tra -ge -ggdb?
Ho un programma che prende l'input da stdin e prende anche alcuni parametri dalla riga di comando. Assomiglia a questo: cat input.txt > myprogram -path "/home/user/work" Provo a fare il debug del codice con gdb all'interno di emacs, da Mx gdb, provo a caricare il programma con il comando: gdb …
Attualmente, quando stampo il valore di una variabile vin GDB ( print v) ottengo un numero intero. È possibile che GDB stampi tali variabili intere in esadecimale o binario?
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 Provai: breaki 0x0000000000400448 ma sembra che non ci sia tale comando. Gdb ha una tale funzionalità?
Sono nuovo in GDB, quindi ho alcune domande: Come posso guardare il contenuto dello stack? Esempio: per vedere il contenuto del registro, digito info registers. Per lo stack, cosa dovrebbe essere? Come posso vedere il contenuto di $0x4(%esp)? Quando print /d $0x4(%esp)digito, GDB restituisce un errore. Piattaforma: Linux e GDB
Supponendo di avere qualcosa del genere: #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } Vorrei poter ispezionare il contenuto della mappa che esegue il programma da gdb. Se provo a utilizzare l'operatore pedice ottengo: (gdb) p m[1] Attempt to take address of value …
Continuo a ricevere questo messaggio di errore quando provo ad aggiungere un punto di interruzione in gdb. Ho usato questi comandi per compilare: 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 Ho anche provato "-ggdb" invece di …
Sto cercando di automatizzare una sessione gdb utilizzando il --commandflag. Sto cercando di impostare un punto di interruzione su una funzione in una libreria condivisa (l'equivalente Unix di una DLL). Il mio cmds.gdb ha questo aspetto: set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r Tuttavia, sto ottenendo quanto segue: shlomi: ~ / …
Vorrei aver gdbeseguito immediatamente l'eseguibile, come se avessi digitato "run" (motivazione: non mi piace digitare "run"). Un modo è quello di inviare il comando gdbin questo modo: $ echo run | gdb myApp Ma il problema con questo approccio è che perdi interattività con gdb, ad es. se un punto …
Quando uso gcc per compilare programmi C, di solito uso -gper ottenere alcune informazioni di debug nel file elf in modo che gdb possa aiutarmi se necessario. Tuttavia, ho notato che alcuni programmi usano -ggdb, dato che dovrebbe rendere le informazioni di debug più amichevoli con gdb. Come si differenziano …
Mi piace fare in modo che GDB imposti un punto di interruzione quando una variabile è uguale a un valore che ho impostato, ho provato questo esempio: #include <stdio.h> main() { int i = 0; for(i=0;i<7;++i) printf("%d\n", i); return 0; } Uscita da GDB: (gdb) break if ((int)i == 5) …
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.