Nenhum dump principal no Ubuntu em uma pasta compartilhada Parallels

5

Eu tenho um aplicativo em que estou trabalhando e estou tendo problemas para obter um dump principal quando ele é segmentado. Na verdade, estou tendo problemas para obter arquivos reais de despejo principal. Um caso de teste simples gerará um arquivo de dump principal, mas seu tamanho é zero.

Eu tenho ulimit -c unlimited definido. Este é o Ubuntu Maverick de 64 bits. Qualquer dica sobre o que fazer a seguir?

[dlee@dlee-oak t]$ ulimit -c
unlimited

[dlee@dlee-oak t]$ cat mkcore.cpp
int main() { *((int *)0) = 0; }

[dlee@dlee-oak t]$ g++ -g mkcore.cpp -o mkcore

[dlee@dlee-oak t]$ ./mkcore 
Segmentation fault

[dlee@dlee-oak t]$ ls -l core*
-rw-r--r-- 1 dlee dlee 0 2010-12-21 15:00 core.2993

Editar: Mais informações

[dlee@dlee-oak t]$ tail -n +1 /proc/sys/kernel/core_*
==> /proc/sys/kernel/core_pattern <==
core

==> /proc/sys/kernel/core_pipe_limit <==
0

==> /proc/sys/kernel/core_uses_pid <==
1

[dlee@dlee-oak t]$ tail /var/log/kern.log
<snip/>
Dec 21 16:07:40 dlee-oak kernel: [  133.863045] mkcore[1589]: segfault at 0 ip 000000000040043d sp 00007fffbd025510 error 6 in mkcore[400000+aa000]

Acabei de perceber que o sistema de arquivos no qual o arquivo principal está sendo gerado é um Parallels Shared Folder . (Esta instância do Ubuntu está sendo executada em uma VM Parallels no meu Mac). Quando executo o aplicativo de um diretório que está no disco local, o arquivo principal é gerado conforme o esperado.

Então, vou mudar um pouco a questão: por que ele não está gerando o arquivo principal no sistema de arquivos prl_fs? Apenas curioso ...

Editar # 2:

Você notará que quando gerar o arquivo principal de tamanho zero, ele não imprimirá (core dumped) . Eu verifiquei minha sanidade e sim, o arquivo principal de tamanho zero está realmente sendo criado.

[dlee@dlee-oak t]$ X=$(pwd)
[dlee@dlee-oak t]$ ls -l core*
ls: cannot access core*: No such file or directory
[dlee@dlee-oak t]$ ./mkcore 
Segmentation fault
[dlee@dlee-oak t]$ ls -l core*
-rw-r--r-- 1 dlee dlee 0 2010-12-22 00:41 core.6009

[dlee@dlee-oak t]$ cd ~
[dlee@dlee-oak ~]$ $X/mkcore
Segmentation fault (core dumped)
    
por leedm777 21.12.2010 / 22:11

1 resposta

1

Não consegui encontrar claramente o motivo subjacente, mas o arquivo principal de tamanho zero foi causado pela tentativa de criar o arquivo principal em um Parallels Shared Folder .

Eu resolvi o problema executando o aplicativo em um diretório local. Suponho que outra alternativa seria definir /proc/sys/kernel/core_pattern para despejar arquivos principais em um diretório local.

    
por 11.01.2011 / 18:29