2013-11-25 63 views
1

當我在Python中開發時,我經常要調試特定的方法,在這種情況下,從交互式控制檯或調試交互式控制檯調用方法是有意義的。但是,當從PTVS中的交互式窗口調用方法時,它不會在所述方法的中斷點處停止。是否可以在PTVS中調試從交互式窗口調用的方法?

如果可能的話,請告訴我該怎麼做。如果沒有,我想請求這個功能,並且知道是否有更快的方法來調試特定的方法,而不是從主腳本中調用它。

我使用Visual Studio中PTVS 2.0 RC 2013終極

回答

2

當使用常規(非調試)Python交互式窗口中,你其實可以連接到VS它通過使用運行python.exe過程調試 - >附加到進程。一旦完成,如果交互式窗口做了某些事情,例如打到一個斷點後,調試器將在該斷點上命中。

棘手的部分是以解決斷點的方式加載文件中的代碼。特別是$load REPL命令不起作用,因爲它只是讀取文件並在REPL中逐行掃描它,而不保留原始文件上下文。您需要的是使用Python工具加載腳本 - 例如importopen + exec

那裏還有一些問題 - 例如,每當您在斷點處暫停時,REPL窗口都將無響應。

+0

啊我明白了,這是一個很好的竅門,謝謝。但令人遺憾的是,REPL變得沒有反應。如果可以執行以下操作,它將非常好: _當在方法a'_的一個斷點處停止時,從調試交互窗口調用'method b',並讓調試器停止在方法b的任何斷點處',然後從方法b的上下文中的調試交互式窗口調用'方法c'。這是調試器如何在Matlab中工作的,而且我習慣於在開發時使用這些「嵌套斷點」。 –

+0

我看到,在將常規交互式窗口附加到python.exe並調用'method a'之後,在斷點處停止確實會導致REPL無響應,但是我們可以切換到調試交互式窗口並使用局部變量非常酷。 –

相關問題