Como depurar sem “Sinal de programa recebido SIGILL” usando o kernel 3.18 (o 3.12 funciona)?

10

Tentei depurar um programa com gdb no Raspbian, mas tudo o que recebo é:

Program received signal SIGILL, Illegal instruction.
0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3

Não ajuda definir o SIGILLidentificador para nostop( handle SIGILL nostop):

Program received signal SIGILL, Illegal instruction.

Program terminated with signal SIGILL, Illegal instruction.
The program no longer exists.

Todo o backtrace que recebo é:

#0  0xb6fe8acc in ?? () from /lib/ld-linux-armhf.so.3
#1  0x00000000 in ?? ()

Se eu iniciar o programa fora do gdb, recebo uma exceção C ++ normal (que gostaria de depurar).

Todos os softwares foram atualizados para a versão mais recente dos repositórios raspbian. Além disso, tentei o kernel raspberry pi foundation "3.18.9+" e também o kernel raspbain "3.18.0-trunk-rpi" (preciso de alguns módulos personalizados do kernel). Posso depurar o mesmo programa na minha máquina principal sem problemas.

Atualização: a depuração funciona conforme o esperado com o kernel "3.12-1-rpi".

O que está causando esse erro?

someonr
fonte
Você tentou handle SIGILL pass nostop?
Mpromonet
@mpromonet Como passestá definido por padrão, não deve fazer diferença e não faz nenhuma. Mesmo resultado que comhandle SIGILL nostop
someonr 25/03/2015
E não há backtrace significativo ( bt)? Eu acho que você precisa pensar em fornecer mais contexto aqui se espera seriamente que alguém explique "O que está causando esse erro?" baseado apenas em uma instrução ilegal no vinculador / carregador ( ld-linux-armhf).
goldilocks
Não consegui nenhum retorno significativo (consulte a pergunta editada). Vou tentar criar um pequeno exemplo. Além disso, estou confuso por não receber um código de operação ilegal sem o gdb.
someonr
11
pilha parece esmagada, valgrind poderia ajudar?
Mpromonet

Respostas:

4

Parece exatamente o mesmo que este problema: https://github.com/raspberrypi/linux/issues/766

Corrigido há quatro dias.

Doug Edey
fonte
Parece promissor. Testará mais tarde. Thx pela informação.
someonr
@someonr você conferiu?
tshepang 22/07/2015
sudo apt-get update; sudo apt-get upgrade; sudo rpi-updatecorrigiu o problema para mim, permitindo-me usar continueehandle SIGILL nostop
Morloch