我正在尝试使用PyKd将python扩展加载到WinDBG。
.load pykd
成功。
当我正在运行!py
时,我明白了:
找不到python解释器
我尝试过的事情:
不同版本的python
使用PyKd的dll和pyd文件
.reload / f
不同的符号路径
调试WinDBG和PyKd,也是通过源代码,没有成功
是的,使用Python路径正确设置了我的环境。
无法在网络上找到任何关于该问题的提及。 它总是在我拥有的不同系统和配置上顺利运行,但在我的新系统中,我得到了这个奇怪的消息。
详细信息:
Windows 10 Home,版本1607,x64
WinDBG x86,build 10.0.15063.0
Python 2.7.13,但我也尝试了很多其他版本。
符号路径:cache * c:\ symbols; srv * https://msdl.microsoft.com/download/symbols
戴尔XPS 15
答案 0 :(得分:0)
人 我也安装了最新的pykd,并出现了同样的问题。
然后我发现我没有在这个虚拟机上安装python 2.7。
安装python 2.7会有效。 你已经安装了它。我建议你检查python安装路径是否在“path”环境变量
中答案 1 :(得分:0)
WinDBG x86,build 10.0.15063.0 Python 2.7.13,但我也尝试了很多其他版本。
你需要python 2.7.13 x86
安装完成后,您可以使用命令pykd.info检查它对pykd的可见性 - 它应该显示python的路径。对于python 2.7,它通常是C:\ windows \ system32 \ python27.dll
答案 2 :(得分:0)
如果您没有以下注册路径:HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\xx\PythonPath
,则应安装启用了Path的python-2.7(x64)。
答案 3 :(得分:0)
在同一台计算机上安装多个python时出现此问题。可以通过手动创建所需的注册表项来解决此问题,因为我不想重新安装任何python版本,也不想更改全局path / pythonpath变量。
请注意,对于windbgx64,您将需要x64 python;对于windbgx86,将需要x86 python
假设您要使用安装在3.7x86
上的python c:\python37_x86
和安装在3.6x64
上的python c:\python36_x64
在此处创建通向HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python\PythonCore\3.7-32\InstallPath
的密钥,并将(Default)
设置为c:\python37_x86\
(尾随反斜杠很重要!)
类似地,在此处创建通向HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.6\InstallPath
的键,并将(Default)
设置为c:\python36_x64\
PYTHONPATH
环境变量仍在使用,并且必须与引用的python版本匹配(否则,您将遇到Fatal Python error: unable to load the file system codec
。注意:仅当其中一个版本使用时,这可能很重要是2.x,其他是3.x。请尝试使其在没有此步骤的情况下正常工作 为避免上一个问题,我创建了.bat文件来修改环境并在正确的环境下启动windbg。
例如,启动32位windbg:
set PYTHONPATH=C:\python37_x86\Lib;[...Rest of the PYTHONPATH for this python version...]
start windbgx -debugArch x86 -c ".load c:\dev\tools\pykd\x86\pykd.dll"
答案 4 :(得分:0)
也有同样的问题,最后看你用的是哪个windbg版本,你安装的是什么python版本;
我不必向 PATH 添加任何特定版本,我的系统中有 3 个版本的 python; python2.7x86、python2.7x64和python3x64,如果我在windbgx86中运行!pykd.info
,它识别x86 pythons,如果我在sindbgx64中运行它,它识别x64 python。
如果你的 !pykd.info
没有列出任何 python,你可能把它们搞混了(你在运行 windbgx64 时只有 pythonx86,或者在运行 windbgx86 时你只有 pythonx64)。