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?Cómo habilitar el volcado del núcleo en mi programa C++ de Linux
63
A
Respuesta
81
Debe 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 está 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>
.
11
De forma predeterminada, muchos perfiles están predeterminados a 0 tamaño de archivo de núcleo porque el usuario promedio no sabe qué hacer con ellos.
Pruebe ulimit -c unlimited
antes de ejecutar su programa.
39
Puede 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);
Cuestiones relacionadas
- 1. Volcado del núcleo en Linux
- 2. Cómo causar un volcado del núcleo en C/C++
- 3. Cómo generar el archivo de volcado del núcleo en Ubuntu
- 4. aborto infinito() en un backrace de un volcado del núcleo del programa C++
- 5. Cómo analizar el volcado del núcleo
- 6. Generar volcado del núcleo en Android
- 7. ¿Cómo analizar el archivo de volcado del núcleo de un programa con gdb?
- 8. obteniendo stacktrace del volcado del núcleo
- 9. Error de segmentación (núcleo volcado)
- 10. Análisis de volcado del núcleo utilizando gdb
- 11. archivos de volcado del núcleo en Linux: ¿cómo obtener información sobre los archivos abiertos?
- 12. ¿Cómo puede un programa C producir un volcado de núcleo sin terminar?
- 13. Solicitar el volcado del he va en java (volcado del núcleo) desde la aplicación
- 14. Cambiar el temporizador del núcleo de Linux
- 15. Crear volcados del núcleo en Cygwin
- 16. list.h del núcleo de Linux
- 17. Compilación del núcleo de Linux - hola mundo
- 18. Archivo de volcado del núcleo no generado en el error de segmentación
- 19. Volcado de núcleo selectivo en Linux - ¿Cómo puedo seleccionar las secciones objeto de dumping?
- 20. ¿Cómo hacer un buen uso del seguimiento de la pila (desde el núcleo o el volcado del núcleo)?
- 21. Programación del núcleo de Linux para principiantes
- 22. por proceso directorio de volcado del núcleo configurable
- 23. Formato de archivo de volcado de núcleo
- 24. ¿Por qué se generan archivos de volcado de núcleo?
- 25. Linux: ¿Snoop una señal sin destrozar los registros para el siguiente volcado de núcleo?
- 26. Cómo limitar el tamaño del archivo de volcado del núcleo al generarlo usando GDB
- 27. Cronometraje en el núcleo de Linux 2.6
- 28. depuración del núcleo de Linux pánico
- 29. ¿Tiene ActionScript un equivalente a un "volcado del núcleo"?
- 30. Volcado de núcleo mínimo (seguimiento de pila + marco actual solamente)
Gracias, ejecuté "ulimit -c unlimited" de la ventana de terminal (Ubuntu), a continuación, ejecutar mi programa desde la misma ventana, y creó volcado de memoria. ¿Cómo puedo hacer que este modo sea el predeterminado? Cuando ejecuto mi programa desde el atajo de teclado, dump no se crea. –
1) 'setrlimit' es una forma de establecer el tamaño del archivo central de su programa. 2) O configure 'ulimit -c unlimited' en su perfil. –
Coloque la línea en su '~/.profile'. – Philipp