После вскрытия мини-дамп отладки в windbg - что вызываетдля кучи памяти? - PullRequest
0 голосов
/ 30 октября 2010

Я смотрю на аварийную свалку. Некоторые переменные выглядят идеально видимыми в windbg, в то время как другие просто говорят «ошибка доступа к памяти». Что вызывает это? Почему некоторые переменные имеют чувственные значения, а другие просто перечисляют?

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

Ответы [ 2 ]

2 голосов
/ 07 ноября 2010

Мини-дампы довольно бесполезны, они не содержат снимок всей используемой памяти.Вместо этого все, что они содержат, - это некоторые критические структуры / списки (например, список загруженных модулей) и содержимое аварийного стека.

Итак, любой указатель, который вы попытаетесь выполнить в дампе, просто даст вам вопросительные знаки,Вместо этого возьмите полный дамп памяти, и вы сможете увидеть, на что указывают эти буферы.

-scott

1 голос
/ 30 октября 2010

Если они являются локальными переменными-указателями, то, скорее всего, происходит то, что указатели не инициализируются или что местоположение стека было повторно использовано для хранения другой переменной, которая может не быть указателем.В обоих случаях значение указателя может указывать на случайную, нечитаемую часть памяти.

...