it-swarm-es.tech

¿Es posible obtener un volcado de núcleo de un proceso de ejecución y su tabla de símbolos?

¿Es posible obtener gdb o usar algunas otras herramientas para crear un volcado central de un proceso en ejecución y su tabla de símbolos? Sería genial si hubiera una manera de hacer esto sin terminar el proceso.

Si esto es posible, ¿qué comandos usarías? (Estoy tratando de hacer esto en una caja de Linux)

56
Readonly
 $ gdb --pid = 26426 
 (gdb) gcore 
 Guardado corefile core.26426 
 (gdb) separar 
65
DustinB

O ejecute gcore $(pidof processname).

Esto tiene la ventaja (sobrepasar gdb y emitir comandos al CLI) que adjunta y desconecta en el menor tiempo posible.

56
Alex Zeffertt

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

1
Dev

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

Puede enviar una de las siguientes señales (con acción = núcleo) al proceso en ejecución:
De: 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

Al igual que:
kill <signal> <pid>

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

1
brokenfoot