當在Python調試腳本(2.7,在Linux上運行),我偶爾注入pdb.set_trace()(注意,我在實際使用IPDB)後,例如停止Python程序:如何pdb.set_trace()
import ipdb as pdb
try:
do_something()
# I'd like to look at some local variables before running do_something_dangerous()
pdb.set_trace()
except:
pass
do_something_dangerous()
我通常從shell運行腳本,例如
python my_script.py
有時在我的調試會話期間,我意識到我不想運行do_something_dangerous()。什麼是停止程序執行的最簡單方法,以便do_something_dangerous()不運行,我可以退回到shell?按照我的理解,按ctrl-d(或發出調試器的退出命令)將簡單地退出ipdb,程序將繼續運行(在我上面的示例中)。按ctrl-c似乎引發了一個KeyboardInterrupt,但我從來沒有理解它引發的上下文。
我希望像ctrl-q這樣的東西簡單地把整個過程取下來,但我一直沒能找到任何東西。
我明白我的例子是高度設計的,但我的問題是關於如何在調試代碼設置爲捕獲異常時從pdb中止執行。這不是關於如何重構上面的代碼,所以它的工作原理!
我認爲ctrl-d和q(uit)是一樣的,我的代碼設置爲捕獲異常,所以這不會成功終止我的程序。我會相應地更新我的例子,因爲那根本不清楚! – nonagon