从C ++代码中调用Python调试的有效方法

时间:2011-12-09 03:23:08

标签: python debugging

我有一个C ++应用程序(在Windows XP上)调用一些Python代码。我目前使用Winpdb作为我的python调试器。

使用winpdb作为调试器有一些缺点,因为首先,我需要添加一个pdb语句,因为我添加动态断点,所以在执行期间几乎没有给予我任何控制权。

有没有人知道可以使用的工具以与Visual Studio 2010(或一般的Visual Studio)类似的方式工作?对我来说最重要的是能够在应用程序执行时设置和删除断点,就像我们可以使用Visual Studio一样。

我已经看过ActiveState Komodo IDE6和Eclipse Python PyDev,但我认为其中任何一个都不符合要求。这是因为我有各种初始化的python模块 使用C ++函数调用“Py_InitModule”,其名称可能与.py文件的名称不同。 Komodo和Eclipse Python PyDev无法识别模块。

如果您有任何建议,请与我们联系。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

好吧,对我来说似乎它在PyDev中工作...唯一的事情就是你必须将跟踪附加到调试器 - 在你想要的线程上使用pydevd.settrace(suspend = False)跟踪并在此之后它应该“同步”当前断点及其添加/删除(更多引用:http://pydev.org/manual_adv_remote_debugger.html) - 请注意,您可以使用pydevd.settrace(suspend = True)作为断点,如in PDB。

我真的不明白为什么你说它不会起作用。你能否发布你的具体例子,看看它是如何解决的? (有些东西可以在pydevd_file_utils.py中自定义,以帮助翻译断点路径。)