No sé cuando empezó, pero en algún momento, OS X comenzó dumping corazones en una carpeta especial ( /cores
). Se trata de un dolor ya que conseguir mezclados y es difícil hacer un seguimiento de qué base archivos va con que ejecución. ¿Hay un ambiente especial o variable bandera puedo configurar para tener núcleos objeto de dumping en el directorio de trabajo (como con otros sistemas operativos) en su lugar?
Respuesta
¿Demasiados anuncios?Finalmente me di cuenta de esto. Resulta que este es un parámetro de kernel controlado por sysctl
. Puede establecer esta por shell base para volcar en el directorio de trabajo actual con:
sysctl -w kern.corefile=core.%P
Ya que nunca he querido que mi volcados de núcleo para terminar en /cores
, pero siempre en el directorio actual, he añadido este plist
a /Library/LaunchDaemons/
:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>sysctl</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/sysctl</string>
<string>-w</string>
<string>kern.corefile=core.%P</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
ACTUALIZACIÓN:
Desde que escribí esto, parece que el sysctl
comando cambiado. He actualizado los ejemplos de arriba, pero si anteriormente estaba usando kern.core_pattern
, que no funciona más.