Найти информацию hwnd в дампе пользовательского режима в windbg
Я пытаюсь решить одно из моих сбоев приложений, и верхняя часть стека вызовов выглядит следующим образом
0012f480 7739b6e3 0002051e 0000001f 00000000 <Unloaded_A.dll>+0x172b6
0012f4ac 7739b874 15b772b6 0002051e 0000001f user32!InternalCallWinProc+0x28
0012f524 7739c8b8 0b4d074c 15b772b6 0002051e user32!UserCallWinProcCheckWow+0x151 (FPO: [Non-Fpo])
0012f580 7739c9c6 02acfc48 0000001f 00000000 user32!DispatchClientMessage+0xd9 (FPO: [Non-Fpo])
0012f5a8 7c8283c6 0012f5c0 00000018 0012f6f8 user32!__fnDWORD+0x24 (FPO: [Non-Fpo])
0012f5d4 7738a8db 77388416 0002051e 00000000 ntdll!KiUserCallbackDispatcher+0x2e (FPO: [0,0,0])
0012f5ec 0d58c9a6 0002051e 00000000 0012f61c user32!NtUserCallHwndParamLock+0xc
Вышеперечисленное делается с помощью команды kv для моего дампа, и похоже, что модуль выгружается, но есть окно, которое все еще существует и не уничтожено должным образом,
Я хотел бы знать информацию относительно моего hwnd, которая здесь 002051e, как заголовок окна, процедура окна и другие детали.
Я пытался найти адрес в куче, чтобы найти какую-либо информацию, связанную с ним, но я не могу найти любую.
Существуют определенные расширения, такие как! Hwnd, которые могут отображать информацию hwnd, но те, которые, я думаю, являются внутренними для Microsoft, есть ли какие-либо расширения, доступные каждому для отображения этой информации?
Могу ли я найти эту информацию?
1 ответ
Я не знаю каких-либо встроенных команд WinDbg, поэтому я могу указать вам на SDbgExt, который при необходимости предоставляет команду ! Hwnd. Он выводит заголовок и класс окна, стиль окна и расширенный стиль, дескриптор родительского окна и другую потенциально интересную информацию. К сожалению, SDbgExt работает только в режиме оперативной отладки, поскольку он получает эту информацию из системы, а не из памяти процесса. Если это работает в дампе, то существует конфликт между вашим дампом и работающей системой, и вы получите полностью вводящую в заблуждение информацию.
Причина этого в том, что окна и очереди сообщений обрабатываются ядром Windows, поэтому у вас нет этой информации в дампе пользовательского режима. Вам понадобится дамп ядра для получения этой информации - и, вероятно, SDbgExt не предназначен для такого использования.