Identificar variable causando error de memoria

Así que me he encontrado con un error extraño unas cuantas veces y estoy buscando algunas buenas instrucciones para identificar el problema.

Básicamente lo que estoy viendo es una falla de seguridad. Los síntomas son los siguientes:

Ocurre solo cuando el programa está en modo de lanzamiento, no en depuración.

Aparece como una falta de seguridad y GDB me dice que está en_list_release/_free()/free() Al final de una función.

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

No estoy usando ninguna memoria dinámica (excepto lo que podría aparecer en Eigen (u otras bibliotecas)

Puedo imprimir todas las variables locales justo antes del final de la función, por lo que no es un doble gratis.

La última vez que sucedió esto fue un fallo de memoria que se ajusta a todos estos problemas. Molesto esta vez no puedo encontrar el problema.

Lo que me gustaría hacer es lo siguiente:

Esto sería muy útil: ¿Cómo puedo forzar este error en el modo de depuración, entonces GDB sería mucho más útil?¿Cuál es la mejor manera de rastrear qué pequeño bugger está causando el problema?NOTA: No puedo usar valgrind, no funciona en el sistema operativo que estoy usando (QNX)

Cualquier ayuda sería genial.

Respuestas a la pregunta(1)

Su respuesta a la pregunta