如何debuggingPython中使用的Windows DLL?

Windows7上,我有一个使用Windows DLL的Python脚本,使用.NET公共语言运行时(CLR)。 一个使用的DLL内部发生错误,但标准的Pythondebugging器只能在Python代码级(而不是DLL)上进行debugging。

我怎样才能debuggingDLL(S)内发生了什么?

如果您有Microsoft Visual Studio可用,

1)打开您的DLL所属的Visual Studio项目(或创建一个新项目)。

2)如果你已经建立了你的DLL进行调试(你已经用调试信息构建了它,它将是你的python程序将使用的那个),你可以在DLL代码中设置断点。

3)按照正常的方式启动要调试的程序。

4)返回到Visual Studio IDE并转到Debug菜单。 选择Attach to Process选项。 您将获得所有正在运行的进程的列表。

5)选择你想要调试的进程,这将是你的Python程序,或运行你的程序的运行时。

6)坐下来等待你的某个断点被击中,或者你可以尝试从Debug菜单中选择Break All来暂停程序。

这是一个开始不仅调试python程序,而且还需要调试程序正在使用的DLL的程序的一般方法。

请注意,如果您使用调试信息自己构建了DLL并且正在被Python应用程序使用,那么上述建议的效果最好。 如果它是没有源代码的第三方DLL,那么仍​​然可以从Visual Studio进行调试,但需要知道汇编语言(因为源代码通常不可用)。