Is it possible to debug a method called from the interactive window in PTVS?

孤人 提交于 2019-12-24 11:44:58

问题


When I'm developing in Python I often want to debug a specific method, in which case it makes sense to call the method from the interactive console or debug interactive console. However, when a method is called from the interactive windows in PTVS, it doesn't stop at the break points in said method.

If it's possible, please tell me how to do it. If not, I would like to request this feature, and also to know if there is any quicker way to debug a specific method than calling it from the main script.

I'm using PTVS 2.0 RC in Visual Studio 2013 Ultimate


回答1:


When using the regular (non-debug) Python Interactive window, you can actually attach VS to the python.exe process that it is running by using Debug -> Attach to Process. Once that is done, if the interactive window does something to e.g. hit a breakpoint, the debugger will hit on that breakpoint.

The tricky part is loading the code from a file in such a way that breakpoints are resolved. In particular, $load REPL command will not work because it just reads the file and evals it in the REPL line by line, without preserving the original file context. What you need is to load your script using Python facilities - e.g. import, or open+exec.

There are also some gotchas there - e.g. the REPL window will become unresponsive whenever you are paused on a breakpoint.



来源:https://stackoverflow.com/questions/20198589/is-it-possible-to-debug-a-method-called-from-the-interactive-window-in-ptvs

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!