Я открыл файл минидампа моего приложения C++ в Visual Studio 2017. Дамп представляет собой сбой программы с нарушением прав доступа. Я подозреваю повреждение кучи/стека, поэтому я провожу много времени в окне памяти/разборки, пытаясь интерпретировать стек.
Было бы очень удобно, если бы я мог искать в памяти какое-то значение (например, обратный адрес вызовов функций). Я знаю, что WinDbg может это сделать, но в настоящее время он не имеет правильно настроенных путей к символам, и я бы предпочел остаться в одном отладчике.
Я нашел эта ссылка, в которой говорится, что Visual Studio 2010 поддерживает ввод чего-то вроде .S -D 0x20B4EC L100 0x12EC9275
в непосредственном окне, но когда я пытаюсь в VS2017, я просто получаю expected an expression
.
Я что-то упускаю?
(Примечание. Хотя сейчас я анализирую аварийный дамп, похоже, он не работает и при отладке работающей программы)
Пояснение
- У меня есть минидамп с включенной памятью
- Обычный анализ работает нормально: у меня есть pdb-файлы, я могу видеть потоки, стеки, часы и так далее. Просто я подозреваю повреждение стека, так что это не имеет особого смысла. (Или так, или оптимизатор надо мной издевается)
- Следовательно, я открыл окно памяти (нажмите Debug->Windows->Memory->Memory 1). Там я вижу (необработанную) память. Теперь я хочу найти в этой памяти определенные значения.
but it currently doesn't have symbol paths set up correctly
почему бы вам просто не настроить его? - person andresantacruz   schedule 28.08.2019!analyze -v
. Это может помочь вам лучше понять проблему. - person vahancho   schedule 28.08.2019Reverse Debugging
. Я считаю, что VS называет это IntelliTrace. - person Mark Storer   schedule 28.08.2019