Após uma instrução, por exemplo,
pop {pc}
escreve um valor inválido, digamos 0, no registrador pc
, a CPU tentará buscar a instrução localizada em 0, o que geralmente acionará uma falha de segmento.
Durante o tratamento da falha, podemos ler os valores dos registradores, incluindo o do pc
register, que é 0 neste caso. Obviamente, se pudéssemos aprender o endereço da instrução que causou o valor pc
inválido, como o endereço da instrução pop
acima, isso nos ajudaria muito mais com a depuração. Existe uma maneira de pegar a falha um pouquinho antes (pegar a instrução anterior, que causou a falha)?
Tags arm segmentation-fault linux