1.首先說原因
我遇到的:是由于該行的函數,有裝飾器(或者說閉包)裝飾它。
2.場景再現
如圖,在逐行調試的時候,我迫切想要知道第98行調試時所傳回的内容,而且我還想進入98行的函數内,看看内部到底發生了什麼。然而,當我點選 Step Over 調試下一行的時候,該死的藍色調試框,跳到了第99行。
3.如何解決
此時我已經結束了本次debug,當我自己點進第98行的函數進去看的時候,發現
沒錯,函數套了個@response_parser的裝飾器,隻要有這個裝飾器存在,而且我debug時,跳過了該行。
我要做的就是:重新在這個被跳過的行(98行)打斷點,并且重新開始debug。
到了這一行時,然後點選 Step Into 進入函數内部
就會發現進入到了裝飾器的内部(此時,裝飾器response_parser會調用98行的那個函數)
是以後面需要做的就是,Step Into 46行函數的内部,因為這個就是在調用98行我們被跳過的那個函數
此時我們已經成功進入被跳過的那個函數的内部。開啟快樂的該行函數的調試之旅。
4.總結
- debug遇到跳過某行的情況,首先我們可以先去确認該行是否有裝飾器修飾它
- 然後,在調試的時候,給該行打上斷點,在後面調試的過程中
- 我先進入到裝飾器的内部
- 再在裝飾器中找到被修飾的函數,也就是被跳過的那行的函數,進入該函數内部
- 在具體的函數内部,我就可以定位該函數内部到底發生了什麼。