2008-09-16 11 views

Respuesta

50
 
$ gdb --pid=26426 
(gdb) gcore 
Saved corefile core.26426 
(gdb) detach 
+5

No necesita establecer ulimit -c unlimited ya que gdb no lo respeta (gdb siempre debe proporcionarle el archivo principal completo). También puede hacer esto usando el comando 'gcore pid' del cli sin ejecutar gdb. – psanford

39

O ejecutar gcore $(pidof processname).

Esto tiene el beneficio (sobre la ejecución de gdb y la emisión de comandos a la CLI) que adjuntar y separar en el menor tiempo posible.

0

Nota: El siguiente método terminará el proceso en ejecución & requiere los símbolos también.

Puede enviar una de las siguientes señales (con action = núcleo) para el proceso que se ejecuta:
Desde: http://man7.org/linux/man-pages/man7/signal.7.html

 Signal  Value  Action Comment 
     ────────────────────────────────────────────────────────────────────── 
     SIGHUP  1  Term Hangup detected on controlling terminal 
            or death of controlling process 
     SIGINT  2  Term Interrupt from keyboard 
     SIGQUIT  3  Core Quit from keyboard 
     SIGILL  4  Core Illegal Instruction 
     SIGABRT  6  Core Abort signal from abort(3) 
     SIGFPE  8  Core Floating point exception 
     SIGKILL  9  Term Kill signal 
     SIGSEGV  11  Core Invalid memory reference 
     SIGPIPE  13  Term Broken pipe: write to pipe with no 
            readers 
     SIGALRM  14  Term Timer signal from alarm(2) 
     SIGTERM  15  Term Termination signal 
     SIGUSR1 30,10,16 Term User-defined signal 1 
     SIGUSR2 31,12,17 Term User-defined signal 2 
     SIGCHLD 20,17,18 Ign  Child stopped or terminated 
     SIGCONT 19,18,25 Cont Continue if stopped 
     SIGSTOP 17,19,23 Stop Stop process 
     SIGTSTP 18,20,24 Stop Stop typed at terminal 
     SIGTTIN 21,21,26 Stop Terminal input for background process 
     SIGTTOU 22,22,27 Stop Terminal output for background process 

así:
kill <signal> <pid>

Y una vez que tenga la núcleo, puede abrir en gdb junto con el archivo de símbolos.

0

Puede utilizar el comando generate-core-file en gdb para generar el volcado del núcleo del proceso en ejecución.

Cuestiones relacionadas