WinDbg с использованием известного модуля

Я отлаживаю некоторые API-интерфейсы Windows, и трассировка стека показывает Unloaded_hext.dll. Я не могу найти эту DLL. Даже если символов нет, WinDbg выводит это имя DLL. Монитор процесса не может найти эту dll.

Почему стоит префикс «выгружено»? Это делается WinDbg или есть какие-то хитрости?

При запуске команды lm я мог видеть hext.dll в разделе незагруженных модулей. Однако, если он выгружен, то почему он отображается трассировкой стека?


person anand    schedule 22.06.2009    source источник


Ответы (1)


WinDBG отслеживает модули даже после того, как они были выгружены, чтобы упростить отладку.

Обычно эти незагруженные модули не должны отображаться в трассировке стека. Если да, то выгрузка произошла, когда модуль еще использовался (FreeLibrary не препятствует этому). Таким образом, эта преждевременная выгрузка является ошибкой в ​​вашем коде.

person Johannes Passing    schedule 22.06.2009
comment
Ну, на самом деле это не мой код. Я просто занимаюсь отладкой Windows API в существующих оконных процессах. - person anand; 22.06.2009