2010-02-01 33 views
9

Ho un paio di domande riguardanti i core dump. Ho gdb su Windows, usando Cygwin.Analisi di dump del core usando gdb

  1. Qual è la posizione del file di core dump? È un file a.exe.stackdump? (Questo è l'unico file generato dopo l'arresto anomalo) Ho letto su altri forum che il file di dump di base è denominato "core". Ma non vedo alcun file con il nome "core".

  2. Qual è il comando per aprire e comprendere il core dump file?

risposta

12
  1. è necessario configurare Cygwin per produrre core dump includendo

    error_start=x:\path\to\dumper.exe

    nella variabile di ambiente CYGWIN (vedi here nella sezione "dumper" per ulteriori informazioni). Se non lo fai, otterrai solo uno stacktrace, che potrebbe anche aiutarti a diagnosticare il problema.

  2. Inizio gdb come segue per collegarlo a un file core dump:

    gdb myexecutable --core=mycorefile

    È ora possibile utilizzare i comandi di solito gdb per stampare uno stacktrace, esaminare i valori delle variabili, e così via.

+0

Come modificare variabile d'ambiente Cygwin? – avd

+0

vedere http://en.wikipedia.org/wiki/Variabile_ambiente. Se stai usando Cygwin, ti consiglio vivamente di leggere alcune nozioni di base su Unix: ne avrai bisogno. –

+0

In realtà conosco il concetto di variabile di ambiente. Ho capito cosa stai dicendo, impostando la variabile di ambiente denominata "error_start". Sto chiedendo dove dovrei definire la nuova variabile di ambiente? nello stesso posto (il mio computer-> proprietà -> ...)? – avd

2
  1. Sì, Cygwin crea a.exe.stackdump file per impostazione predefinita. Devi configurarlo per creare core s (la risposta di Martin lo copre).
  2. Un semplice tutorial su debug core dump può essere trovato here