我在VS2010下有一个用c ++构建的dll,我从python项目调用它。
我在dll中有一个错误,我本来希望能够使用VS工具进行调试,进入解决方案,直到我完成了#34;读取无效的内存位置"。
调试/单步执行功能并没有进入dll内的功能代码。
我试图附加调试器(并从命令行运行python代码/在给我pid的raw_input处停止,然后附加调试器)。同样的事发生了。我点击了python代码中的断点,但没有在dll内部。
我最终发现了我的错误,在我的头撞到我的显示器之后,在dll中使用旧式跟踪。但是必须有一种方法能够调试VS内部的现有/开放项目...我将再次遇到这个问题,所以我希望现在能够学到一些东西,并避免将来损坏我的显示器。 :)
注意:c ++ dll和pdb文件都位于与python文件相同的目录中,它们当然会自动构建到Debug文件夹中,它们也位于系统路径中的文件夹中。启用任何可能的DEBUG符号。我使用的是python 2.7。
答案 0 :(得分:1)
如果您希望能够进入并调试dll,则需要在bin目录中包含.pdb文件,否则您将无法访问任何调试符号。这个.pdb允许visual studio读取.dll文件并进入其方法调用。