visual studio microsoft español descargar community c linux debugging remote-debugging coredump

studio - ¿Cómo crear un volcado de núcleo incluso si el proceso se está ejecutando normalmente?



visual studio installer (4)

En Linux, cuando un proceso se bloquea, se creará un volcado de memoria.

Sin embargo, quiero crear un volcado de memoria cuando el proceso no falla, pero parece tener errores. Un experto remoto necesita el volcado de núcleo para analizar.

Bajo Windows, podemos crear un archivo de volcado de un proceso a través del administrador de tareas, y después de eso, el proceso aún se está ejecutando.

¿Es posible bajo Linux?


Puedes hacerlo dentro de tu código con:

if (fork() == 0) abort();


Puedes usar la utilidad gcore desde la línea de comando:

gcore [-o filename] pid

Por cierto, si desea ver solo el seguimiento de la pila del proceso, la utilidad gstack hará el trabajo.

Ambas utilidades vienen con gdb .


Si desea hacer esto mediante programación, intente usar google-coredumper . Su ejemplo:

#include <google/coredumper.h> ... WriteCoreDump(''core.myprogram''); /* Keep going, we generated a core file, * but we didn''t crash. */


Llama a gdb , entonces

attach pid gcore

donde pid es el id de proceso del proceso en cuestión.