O que é “SYSV00000000”?

7

No meu dmesg apareceu quando meu gerenciador de janelas (xfwm4, parte do XFCE) caiu:

xfwm4[3936]: segfault at 7f3c7c523770 ip 00007f3c7c523770 sp 00007ffffea1ee28 error 15 in SYSV00000000 (deleted)[7f3c7c4e8000+60000]

O mesmo SYSV00000000 também aparece em outros lugares (como lsof ). Então, o que é isso SYSV00000000 ? Eu pesquisei e descobri que está relacionado à memória virtual, mas não muito mais.

    
por Renan 20.08.2012 / 04:54

1 resposta

11

O kernel está lhe dizendo que quando o segfault ocorreu, o ponteiro de instrução 0x7f3c7c523770 estava em um segmento SysV IPC shm. O segmento de memória compartilhada começou em 0x7f3c7c4e8000 e foi 0x60000 bytes.

Os segmentos SysV shm não são apoiados por um arquivo, portanto, a string SYSV00000000 aparece onde normalmente você obteria o nome do arquivo do executável ou biblioteca onde ocorreu o segfault. Como resultado, esta linha de registro não nos fornece nenhuma informação útil real. Se você quiser alguma esperança de rastrear a causa da falha, você precisa do dump principal.

Eu suspeito que o ponteiro de instruções não deveria estar lá. É muito estranho carregar o código executável em um segmento SysV shm. Mas eu não vi nenhum código XFCE, então o que parece estranho para mim pode ser normal lá.

Você pode aprender o básico sobre o sysv shm, supondo que você tenha uma compreensão decente dos conceitos básicos de gerenciamento de memória lendo estas páginas man:

man svipc
man shmget
man shmat

Execute o comando ipcs para ver quais recursos do sysv ipc estão atualmente alocados. ipcs -m limita a lista apenas aos segmentos de memória compartilhada.

    
por 20.08.2012 / 10:33