2011-12-09 43 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++應用程序。我沒有閱讀關於遠程調試的細節,因爲我認爲它只是用來調試運行在遠程機器上的應用程序。再次感謝。 –