Есть ли эквивалент в malloc_history в визуальной студии?

Я сталкиваюсь с очень трудно найти ошибку. В основном получается, что один поток освобождает блок памяти, а другой поток все еще имеет ссылку на него (это не мой код, который делает все еще сложнее...).

Я новичок на платформе Windows, но я уже пытался запустить ее с включенным Application Verifier и PageHeap - проблема в том, что ошибка больше не возникает (возможно, потому что сейчас все медленнее - поэтому я имею дело с классической гонкой -состояние). Под Linux я бы попытался использовать Valgrind для такого рода ошибок - но, вероятно, это будет иметь те же эффекты, что и Application Verifier (больше не видеть ошибку..).

В Mac OS X I будет использовать malloc_history для отслеживания этой ошибки. Так есть ли эквивалент в Visual Studio или WinDbg? Я хотел бы сделать следующее:

  • Запустите программу в отладчике до тех пор, пока она не выйдет из строя с ошибкой
  • Получить адрес освобожденного объекта и оттуда получить трассировку стека, где блок фактически был удален.

Это возможно с некоторыми инструментами Windows/Visual Studio?

1 ответ

Я бы начал с исправления этой проблемы:

"что один поток освобождает блок памяти, в то время как другой поток все еще имеет ссылку на него"

Другие вопросы по тегам