Вопрос

Я пытаюсь отладить .NET 3.5, 32-битное приложение, работающее на Windows 7/64 бита с Windbg. Я хотел бы использовать PSScor2, но я не могу его загрузить. Я не могу загрузить SOS, либо.

Когда я пытаюсь загрузить PSSCOR2, я получаю эту ошибку:

> .load psscor2
The call to LoadLibrary(psscor2) failed, Win32 error 0n193
    "%1 ist keine zulässige Win32-Anwendung."
Please check your debugger configuration and/or network access.

Когда я пытаюсь загрузить SOS, я получаю эту ошибку:

> .loadby sos mscorwks
Unable to find module 'mscorwks'

Я предполагаю, что 64-битная версия WINDBG не может загрузить 32-битные расширения DLL, таких как PSSCOR2 и SOS. Но я не мог найти загрузку для 32-битной версии WINDBG, или 64-битная версия PSScor2.

PS: У меня есть (вроде) решил проблему: я установил Windows 7 SDK в 32-битную виртуальную машину и скопировал 32-битную версию Windbg оттуда на свой компьютер для разработки. Но должен быть более простой способ сделать это!

Это было полезно?

Решение

Если вы хотите отладить 32-битное приложение, вы должны использовать 32-битную версию WINDBG и загрузить 32-битную версию SOS / PSSCOR2, даже если вы находитесь на 64 битах Windows.

Если вы используете 64-битную версию, вы получите отладку процесса WOW64, что означает, что вы должны пройти некоторые дополнительные петли для отладки приложения в качестве 32-битного процесса. Если вы должны сделать это по какой-то причине, вам необходимо также загрузить расширение WOW64exts и переключиться на 32-битный режим с помощью !sw команда. Даже если вы сделаете это, есть некоторые проблемы с использованием 64-битной версии с 32-битным приложением, поэтому я рекомендую использовать 32-битную версию WINDBG.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top