A única coisa que posso ver que poderia causar isso seria que o diretório de trabalho atual do aplicativo não é gravável para o usuário em execução.
Estou com dificuldades para ativar os despejos principais no Ubuntu 14.04 LTS (ARM) em execução em um nVidia Jetson TX1 SBC. Eu fiz todas as coisas usuais, incluindo sugestões de aqui e aqui . Há muito espaço no sistema de arquivos raiz, que é gravável. O aplicativo não tem o bit suid definido. Eu também desativei o serviço "apport" do Ubuntu. Aqui está o que eu defini:
/etc/security/limits.conf:
* soft core unlimited
* hard core unlimited
Configurações principais do kernel:
$ cat /proc/sys/kernel/core_pattern
core
$ cat /proc/sys/kernel/core_uses_pid
1
Saída do ulimit:
$ ulimit -c
unlimited
E depois de iniciar o meu processo:
$ egrep "Units|core" /proc/$(pgrep my_app_name)/limits
Limit Soft Limit Hard Limit Units
Max core file size unlimited unlimited bytes
Mas nenhum núcleo é gerado quando o aplicativo ignora, anula ou tem uma exceção de ponto flutuante. O que eu perdi?
A única coisa que posso ver que poderia causar isso seria que o diretório de trabalho atual do aplicativo não é gravável para o usuário em execução.