Articles of gdb

Come abilitare gdb pretty printing per gli oggetti C ++ STL in Eclipse CDT?

Sto cercando di aggiungere una bella stampa per gli oggetti STL in eclipse cdt. Ho provato a seguire i passaggi descritti qui: http://sourceware.org/gdb/wiki/STLSupport Ho controllato la cartella Python, ma non riesco a ottenere questo risultato … Ho creato un gdbinit e selezionato per la mia configurazione di debug, ma ogni volta che provo ad avviare […]

Come posso stampare gli elementi di un vettore C ++ in GDB?

Voglio esaminare il contenuto di un file std::vector in GDB, come faccio? Diciamo che è un std::vector per semplicità.

Ispezionare i contenuti del contenitore standard (std :: map) con gdb

Supponendo di avere qualcosa del genere: #include int main(){ std::map m; m[1] = 2; m[2] = 4; return 0; } Mi piacerebbe essere in grado di ispezionare il contenuto della mappa che esegue il programma da gdb. Se provo a usare l’operatore di pedice, ottengo: (gdb) pm[1] Attempt to take address of value not located […]

Binary Bomba – Fase 4

Sto attraversando un periodo molto difficile per rintracciare il codice assembly per la seguente bomba binaria (un incarico da scuola in cui una bomba deve essere disinnescata, questa bomba contiene 6 fasi che hanno tutte 1 input corretto per passare alla fase successiva). Sono attualmente su phase_4 e ha una funzione ricorsiva chiamata func4. Ho […]

Debug dei file core generati nella casella del cliente

Otteniamo file di base dall’esecuzione del nostro software nella casella del cliente. Sfortunatamente perché abbiamo sempre compilato con -O2 senza eseguire il debugging dei simboli questo ha portato a situazioni in cui non siamo riusciti a capire perché si è verificato un arresto anomalo, abbiamo modificato le build in modo che ora generino -g e […]

Il modo migliore per invocare gdb dal programma interno per stampare il suo stacktrace?

Usando una funzione come questa: #include #include #include #include void print_trace() { char pid_buf[30]; sprintf(pid_buf, “–pid=%d”, getpid()); char name_buf[512]; name_buf[readlink(“/proc/self/exe”, name_buf, 511)]=0; int child_pid = fork(); if (!child_pid) { dup2(2,1); // redirect output to stderr fprintf(stdout,”stack trace for %s pid=%s\n”,name_buf,pid_buf); execlp(“gdb”, “gdb”, “–batch”, “-n”, “-ex”, “thread”, “-ex”, “bt”, name_buf, pid_buf, NULL); abort(); /* If gdb […]

Analisi del file di dump core

Quali sono le cose che dovrò verificare durante l’analisi del file di core dump? Per favore dimmi da zero.

Come eseguire il debug del kernel Linux con GDB e QEMU?

Sono nuovo nello sviluppo del kernel e mi piacerebbe sapere come eseguire / eseguire il debug del kernel di Linux usando QEMU e gdb. In realtà sto leggendo il libro di Robert Love ma sfortunatamente non aiuta il lettore a installare strumenti adeguati per eseguire o eseguire il debug del kernel … Quindi quello che […]

Come analizzare il file di dump di core di un programma con gdb?

Il mio programma funziona così: exe -p param1 -i param2 -o param3 Si è arrestato in modo anomalo e ha generato un file di core core core.pid Voglio analizzare il file core dump di gdb ./exe -p param1 -i param2 -o param3 core.pid ma il gdb riconosce i parametri di exe come input di gdb. […]

C’è un modo per cambiare le variabili d’ambiente di un altro processo in Unix?

Su Unix, c’è un modo in cui un processo può modificare le variabili d’ambiente di un altro (supponendo che vengano tutti gestiti dallo stesso utente)? Una soluzione generale sarebbe la migliore, ma in caso contrario, per quanto riguarda il caso specifico in cui uno è figlio dell’altro? Modifica: che ne dici di via gdb?