我是一位學習Python的Perl程序員。我正在使用Python 2.7.3在python -m pdb script.py
的emacs調試中編寫我的代碼。
我想知道什麼是python相當於在Perl中添加$DB::single=1;1;
到特定的python代碼行,以便運行調試器時,它將停止在那裏,即使它是從不同的源代碼文件開始執行(例如,script.py
使用庫中的一行代碼)。
任何想法?
編輯:在看pdb.set_trace()
或ipdb.set_trace()
後,我認爲他們是很好的解決方案,但與$DB::single=1;1;
的行爲不完全相同。這是,我想斷點是在set_trace行,而不是下一行。這是在Perl的$DB::single=1;
中通過在同一行中添加另一個語句來完成的:1;
,這使得它成爲$DB::single=1;1;
。
使用set_trace()
,我得到語句後一行的斷點,即使我在它後面加上1;
。仍然不完全理解Python與Perl相比如何處理多語句行。
有人嗎?
任何想法?
嗨,你是否嘗試使用'C-x SPACE'(在python緩衝區中)設置斷點,注意你需要讓pdb運行這個工作。 – 2014-02-14 16:20:59
爲什麼斷點在下一行?爲什麼這些功能必須與Perl的功能相同? – jpkotta
jpkotta,它是美容,但我想要一個靜態斷點,實際上使調試器停在那裏,而不是在下一個語句。例如,如果在下一個語句之前有1000行註釋,那麼斷點和下一個語句之間的距離會很煩人。 – 719016