Valgrind - неправильный инструмент для отладки этой проблемы - вы, вероятно, страдаете не от повреждения кучи (а это то, в чем Valgrind хорош), а от чего-то другого.
Я бы использовал GDB для отладки этой проблемы,Когда вы нажмете первую SIGSEGV
, GDB остановится.Вы можете попросить его доставить сигнал приложению с помощью (gdb) signal SIGSEGV
, после чего ваш переводчик выполнит siglongjmp
.В конце концов вы получите SIGBUS
и сможете отлаживать, как вы туда попали.
Поскольку вы, скорее всего, работаете в Linux, обратите внимание, что SIGBUS
встречается довольно редко и обычно является результатом попытки получить доступ к памяти, которая либоне нанесены на карту вообще, или с неправильной защитой.Изучение /proc/<pid>/maps
в точке доставки SIGBUS
скорее всего поможет.