2011-12-09 76 views
1

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

使用winpdb作为调试器有一些缺点,因为首先,我需要添加一个pdb语句,并且由于添加了动态断点,所以在执行过程中几乎没有控制权给我。

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

我看过ActiveState Komodo IDE6和Eclipse Python PyDev,但我不认为任何一个实际上都适合该法案。这是因为我使用C++函数调用“Py_InitModule”来初始化 的各种python模块,其名称可能与.py文件的名称不同。有些模块不被Komodo和Eclipse Python PyDev识别。

如果您有任何建议,请让我知道。感谢您的帮助。

回答

0

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

我真的不明白你为什么说它不起作用。你可以发表你的具体例子:什么不工作,看看如何解决这个问题。 (有些东西可以在pydevd_file_utils.py中定制以帮助翻译断点路径)。

+0

尊敬的法比奥,感谢您的回复。在您的建议之后,我可以使用Pydev和Eclipse来调试C++应用程序。我没有阅读关于远程调试的细节,因为我认为它只是用来调试运行在远程机器上的应用程序。再次感谢。 –