c++ - compilar - ejecutar g++
Cómo habilitar el volcado del núcleo en mi programa Linux C++ (3)
De forma predeterminada, muchos perfiles están predeterminados en 0 tamaño de archivo central porque el usuario medio no sabe qué hacer con ellos.
Pruebe ulimit -c unlimited
antes de ejecutar su programa.
Esta pregunta ya tiene una respuesta aquí:
Mi programa está escrito en C ++. compilado con gcc, usando -g3 -O0 -ggdb flags. Cuando se bloquea, quiero abrir su volcado del núcleo. ¿Crea un archivo de volcado de núcleo, o tengo que hacer algo para habilitar la creación de volcado de núcleo, en el programa mismo o en la computadora donde se ejecuta? ¿Dónde se crea este archivo y cuál es su nombre?
Puedes hacerlo de esta manera dentro de un programa:
#include <sys/resource.h>
// core dumps may be disallowed by parent of this process; change that
struct rlimit core_limits;
core_limits.rlim_cur = core_limits.rlim_max = RLIM_INFINITY;
setrlimit(RLIMIT_CORE, &core_limits);
Debes configurar ulimit -c
. Si tiene 0 para este parámetro, no se crea un archivo coredump. Haga esto: ulimit -c unlimited
y compruebe si todo es correcto ulimit -a
. El archivo coredump se crea cuando una aplicación ha hecho, por ejemplo, algo inapropiado. El nombre del archivo en mi sistema es core.<process-pid-here>
.