Identificar variável causando erro de memória

Então eu tive um erro estranho algumas vezes agora e estou procurando algumas boas direções para identificar o problema.

Basicamente, o que estou vendo é um seg-fault. Os sintomas são os seguintes:

Ocorre somente quando o programa está no modo de liberação, não na depuração.

Ele aparece como um segfault e o GDB me diz que está_list_release/_free()/free() no final de uma função.

Program received signal SIGSEGV, Segmentation fault.

0xb0328af8 in _list_release () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3

(gdb) bt

0 0xb0328af8 in _list_release () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3

1 0xb032a464 in __free () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3

2 0xb0329f7d in free () from /usr/qnx650/target/qnx6/x86/lib/libc.so.3

Eu não estou usando nenhuma memória dinâmica (exceto para o que pode aparecer em Eigen (ou outras bibliotecas)

Eu posso imprimir todas as variáveis ​​locais antes do final da função, por isso não é um duplo livre.

A última vez que isso aconteceu, foi uma falha de memória que se encaixa em todos esses problemas. Irritantemente desta vez não consigo encontrar o problema.

O que eu gostaria de fazer é o seguinte:

Isso seria extremamente útil: como posso forçar esse erro no modo de depuração, o GDB seria muito mais útil.Qual é a melhor maneira de rastrear o que o pequeno bugger está causando o problema?NOTA: Eu não posso usar valgrind, ele não funciona no sistema operacional que estou usando (QNX)

Qualquer ajuda seria ótimo.

questionAnswers(1)

yourAnswerToTheQuestion