相信大多數程序員對於使用python語言或是在linux進行C語言程序編程常用的調試方法是printf,這個是一個大家都能相到的辦法,遇到問題首先就是增加打印信息,查看log記錄。對於產品部署在外面,是不一個不錯的方法。但是這種方法相對於能進行在線調試的方法來說可以獲得的信息量少,分析問題不那麼快速。
python是支持在線調試的,可能相關的書籍並沒有對此做過多介紹,導致我認為它好像就不能在線調試一樣。就在上周我遇到了一個QT界面程序長時間運行後界面卡死後,為了尋找解決問題的原因,我才想到了在線調試,一查發現QT還真支持在線調試。那麼怎麼使用在線調試呢,python的原生IDE是支持在線調試的,我使用的代碼編譯器vscode軟件,vscode軟件基於python的調試器提供了友好的界面支持,用起來體驗更好。我就直接使用vscode進行了在線調試。如下圖,打開程序選擇右上角Debug Python File即可運行了。
進入調試界面後,左邊窗口顯示了程序運行的變量,調用堆棧,斷點,如果需要在特定的代碼位置停止觀察數據,在行號前點擊一下,出了個紅點就可以了。
使用在線調試的方法,運行軟件4個小時,發現了QT軟件界面卡死,程序在一個while循環中出不來,如下圖。即當pos = -1時,while循環無法退出,找到問題,解決問題就很容易了。
in the light of Python Beginne
WELL ~ ~ ~WELL ~ ~ ~WELL ~ ~ ~