Почему Windbg настаивает на загрузке 32-битных библиотек? [закрыто]Python

Программы на Python
Ответить
Anonymous
 Почему Windbg настаивает на загрузке 32-битных библиотек? [закрыто]

Сообщение Anonymous »

При работе с Windbg у меня появляется следующее сообщение об ошибке:

Код: Выделить всё

0:000> .load pykd.pyd
The call to LoadLibrary(pykd.pyd) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Extension DLL search Path:
C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86\WINXP;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86\winext;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86\winext\arcade;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86\pri;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86;C:\Users\DDESCA\AppData\Local\Dbg\EngineExtensions32;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86;C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\amd64;C:\Program Files (x86)\Common Files\BMSvision Shared\PFE\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\160\Tools\Binn\;C:\Program Files\Microsoft SQL Server\160\Tools\Binn\;C:\Program Files\Microsoft SQL Server\160\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\160\DTS\Binn\;C:\Program Files\doxygen\bin;C:\Program Files\TortoiseGit\bin;C:\Program Files\Graphviz\bin;C:\Program Files\PuTTY\;C:\Program Files\NuGet;C:\Program Files\GitExtensions\;C:\Program Files (x86)\Common Files\BMSvision Shared\CIMnet\;C:\Development\workarea\vcpkg\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\SlikSvn\bin;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools;C:\Program Files (x86)\HTML Help Workshop\;C:\Program Files\Git\cmd;C:\Development\workarea\vcpkg\downloads\tools\powershell-core-7.5.3-windows\;C:\Development\util\Dependencies_x86_Debug\;C:\Development\util\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\;C:\Development\workarea\pcms\Tools\Event Tracing\;C:\Users\DDESCA\AppData\Roaming\Python\Python39\site-packages\pykd\;C:\Program Files\Python_3.9\Scripts\;C:\Program Files\Python_3.9\;C:\Users\DDESCA\AppData\Local\Microsoft\WindowsApps;C:\Users\DDESCA\.dotnet\tools;C:\Users\DDESCA\AppData\Local\Programs\Microsoft VS Code\bin
You may also consider deploying your extension to the UserExtensions extension gallery repository
located at %LOCALAPPDATA%\dbg\UserExtensions folder. It would require an extension manifest.
Error: Failed to load extension pykd.pyd
Итак, Windbg хочет, чтобы загружаемые библиотеки были 32-битными. Почему это так и могу ли я заставить Windbg принимать 64-битные библиотеки?
Для вашей информации:

Windbg является 64-битным:

Изображение

Pykd.pyd 64-разрядная версия:

Код: Выделить всё

c:\Users\...\Python\Python39\site-packages\pykd>sigCheck pykd.pyd | findstr /I "MachineType"
MachineType:    64-bit
Даже Python 64-битный:
Изображение

Остальная часть этого вопроса уже история (я оставляю его здесь для справки):

Я хотел бы использовать heap_stat для анализа дампа, это то, что я сделал более восьми лет назад.
На моем компьютере установлен Python, но не установлен pip. В результате мне нужно сделать следующее, чтобы выполнить установку по протоколу:

Код: Выделить всё

python -m pip install [*]
Когда я пробую это с библиотекой PYKD, я получаю вот что:

Код: Выделить всё

python -m pip install -v pykd
Using pip 25.3 from C:\...\AppData\Local\Python\pythoncore-3.14-64\Lib\site-packages\pip (python 3.14)
ERROR: Could not find a version that satisfies the requirement pykd (from versions: none)
ERROR: No matching distribution found for pykd
Кто-нибудь знает, где и как я могу получить библиотеку PYKD?
Как только она будет установлена, я попытаюсь запустить heap_stat.py внутри сеанса Windbg (я только что установил Windbg, версия 1.2511.21001.0).
  • Возможно ли это и как мне это нужно установить PYKD?
  • Внутри сеанса Windbg я планирую запустить следующие две команды: Это все еще верно?
  • За последние восемь лет был создан еще один скрипт, сделавший heap_stat устаревшим? Если да, то какой?
Как предложил Дмитрий, я установил Python версии 3.9 и использовал ее для установки PYKD.PYD, и это работает. Однако когда я пытаюсь загрузить это в сеанс Windbg, это не удается:

Код: Выделить всё

Windbg prompt>.load pykd.pyd
The call to LoadLibrary(pykd.pyd) failed, Win32 error 0n193
"%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.
Extension DLL search Path:
C:\Program Files\WindowsApps\Microsoft.WinDbg_1.2511.21001.0_x64__8wekyb3d8bbwe\x86\WINXP
...
C:\Users\DDESCA\AppData\Local\Dbg\EngineExtensions32
...
C:\Users\DDESCA\AppData\Roaming\Python\Python39\site-packages\pykd\
C:\Program Files\Python_3.9\Scripts\
C:\Program Files\Python_3.9\
...

You may also consider deploying your extension to the UserExtensions extension gallery repository
located at %LOCALAPPDATA%\dbg\UserExtensions folder. It would require an extension manifest.
Error: Failed to load extension pykd.pyd
Я могу подтвердить, что PYKD.PYD находится среди упомянутых выше каталогов:

Код: Выделить всё

Windows command prompt>C:\>dir /S /B "pykd.pyd"
C:\Users\DDESCA\AppData\Roaming\Python\Python39\site-packages\pykd\pykd.pyd
Итак, почему невозможно загрузить эту библиотеку?
Для вашей информации: я запустил SysInternals sigCheck для Pykd.pyd и Python.exe, оба 64-разрядные.


Подробнее здесь: https://stackoverflow.com/questions/798 ... -libraries
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»