Последние несколько недель я работаю, пытаясь отследить действительно сложную ошибку, которая приводит к сбою моего приложения. Сначала происходит сбой приложения при присвоении std :: string, а затем при освобождении локальной переменной.
После тщательной проверки кода не было причин для его сбоя в этих местах; однако, он всегда падал при попытке освободить недопустимый указатель (то есть указатель, который указывал на недопустимую память). И я понятия не имею, почему этот указатель не указывал на правильное местоположение.
Я подозреваю, что проблема связана с проблемой повреждения памяти или некоторой проблемой повреждения указателя. Проблема в том, что я не могу визуально отследить это .... пока. Я понятия не имею, с чего начать поиск в коде, и нужно пройти тысячи строк кода, так что это не похоже на реалистичный подход к проблеме.
Итак, приходит Вальгринд ...
Инструмент, от которого я зависел много раз, чтобы найти проблемы в коде, которые могут привести к сбою этого типа. Однако на этот раз он пришел с пустыми руками! Я не вижу никаких ошибок в valgrind при возникновении проблемы, поэтому я и задаю этот вопрос.
Существуют ли другие приложения, которые могут дополнить valgrind и помочь найти проблемы в коде, которые могут вызвать сбой, упомянутый выше?
Спасибо!