Python原生調試工具pdb實踐小結

使用python -m pdb xxx.py進入單步調試模式,默認會在腳本的第一行可執行命令處中止。此時,經過 b function設置以後的函數斷點會提示出錯,從出錯異常棧中能夠看出,pdb是將function當作行號來識別,而函數名是字符串,轉換成整形會失敗,所以會提示出錯。在處理轉換整形失敗異常時,會嘗試執行 function,若是當前解析器還執行到該函數(因爲是剛開始調試,相關函數還沒有解析),那麼在該函數上設置斷點又會觸發異常。那麼,經過單步調試,如何開始呢?python

通過多番嘗試,總結這樣的工程實踐經驗,在單步進入時,先經過 b lineno設置爲指望調試的入口行號後,按c運行至此處,而後,經過b function設置後續的函數斷點,設置的function要求已通過解釋器解釋過的。這多是pdb單步調試的缺陷。函數

還有一種侵入式的調試方式就是在源代碼中導入pdb模塊,在須要設置斷點的地方手動加上 pdb.set_trace(),經過python xx.py命令啓動程序後,可直接執行到斷點處,而後再單步調試下去。這樣對源代碼有侵入性,不怎麼友好。調試

相關文章
相關標籤/搜索