Debugging Pydev--附加到python_d进程(python调试构建)不工作

Debugging Pydev--附加到python_d进程(python调试构建)不工作,debugging,pydev,Debugging,Pydev,在Windows7上,我有带Liclipse/PyDev的EclipseNeon(4.6.3),我使用的是Python2.7.13的自定义64位调试版本(Python_d.exe,使用pcbuild.sln与Visual Studio一起构建)。在大多数情况下,Python的这个调试构建与PyDev一起工作——我可以将它配置为解释器并进行运行/调试会话。但是,“附加到进程”功能不起作用。如果我在系统的某个地方运行了一个“python_d”进程,并在PyDev中尝试“附加到进程”,则会发生以下情况

在Windows7上,我有带Liclipse/PyDev的EclipseNeon(4.6.3),我使用的是Python2.7.13的自定义64位调试版本(Python_d.exe,使用pcbuild.sln与Visual Studio一起构建)。在大多数情况下,Python的这个调试构建与PyDev一起工作——我可以将它配置为解释器并进行运行/调试会话。但是,“附加到进程”功能不起作用。如果我在系统的某个地方运行了一个“python_d”进程,并在PyDev中尝试“附加到进程”,则会发生以下情况:

  • “过程输出”对话框窗口显示以下内容:
连接到64位目标
注入dll
Dll注入
在目标进程中分配代码
在目标进程中编写代码
在目标进程中分配返回值内存
向目标进程注入代码
等待代码完成
连接已成功完成。
[参考文献127156]
已使用exitValue:0完成进程

  • 出现一个Windows崩溃对话框:“python_d.exe已停止工作”
  • 我试图附加到的“python_d”进程在其输出中获取此消息,然后崩溃:
    Fatal python error:UNREF invalid object
相反,当我使用一个定期安装的Python版本(我在PyDev中配置为一个单独的解释器)时,attach机制可以工作


Python的调试版本是否应该与PyDev调试器连接机制一起工作?这是PyDev中的一个bug吗?PyDev可能不正确地使用了一个只应该与Python发布版本一起使用的DLL吗?PyDev是否需要以不同的方式从源代码构建以支持用于此目的的Python调试构建?

调试构建实际上不受支持(Python ABI在调试时与发行版不同,附加的代码作为dll提供,以期望Python发行版)

值得注意的是,它的代码仍然存在——如果您真的觉得这是您必须拥有的,那么您可以尝试将其更改为使用Python的调试构建

最具体地说,可能需要针对调试版本进行调整