lunes, agosto 04, 2008

Core files en MacOS X

Cuando estamos trabajando en Unix, es normal que nos encontremos con un programa que de problemas y acabe volcando una imagen de la memoria del proceso (core file). Que un proceso genere o no un fichero de core depende si en la shell se ha configurado de manera adecuada. Por defecto, en la shell bash que utiliza MacOS X, esto se hace mirando el resultado de ulimit -c
bash-3.2# ulimit -c
0
bash-3.2#
Como puede verse está deshabilitado, puesto que el tamaño máximo del fichero core que genere es de 0 Kb. Cuando estamos trabajando, queremos que se genere todo el fichero, así que es necesario cambiarlo a unlimited:
bash-3.2# ulimit -c unlimited
bash-3.2# ulimit -c
unlimited
bash-3.2#
Por último, ¿dónde se almacena?. En los Unix tradicionales, el core se genera en el directorio actual de trabajo para el proceso (current working directory). En MacOS X, sin embargo, se almacenan en el directorio /cores. Si se ha activado la opción de generar esos ficheros, conviene mirar dicho directorio para que no nos ocupen espacio innecesario y por otra parte, saberlo para poder depurar los programas que causan problemas. El directorio /cores no es visible por defecto desde el Finder, es necesario verlo a través de la aplicación Terminal en la línea de comandos.

No hay comentarios: