Finalmente l'ho capito. Si scopre che questo è un parametro del kernel controllato da sysctl
. È possibile impostarlo su una base per shell per eseguire il dump nella directory di lavoro corrente con:
sysctl -w kern.corefile=core.%P
Dato che non ho mai voluto che i miei core dump finissero in /cores
, ma sempre nella directory corrente, ho aggiunto questo 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>
UPDATE:
Da quando ho scritto questo, sembra che il comando sysctl
sia cambiato. Ho aggiornato gli esempi precedenti, ma se in precedenza utilizzava kern.core_pattern
, non funziona più.