天天看點

pycharm逐行調試時跳過了某行的解決辦法

1.首先說原因

我遇到的:是由于該行的函數,有裝飾器(或者說閉包)裝飾它。

2.場景再現

pycharm逐行調試時跳過了某行的解決辦法

如圖,在逐行調試的時候,我迫切想要知道第98行調試時所傳回的内容,而且我還想進入98行的函數内,看看内部到底發生了什麼。然而,當我點選 Step Over 調試下一行的時候,該死的藍色調試框,跳到了第99行。

pycharm逐行調試時跳過了某行的解決辦法

3.如何解決

此時我已經結束了本次debug,當我自己點進第98行的函數進去看的時候,發現

pycharm逐行調試時跳過了某行的解決辦法

沒錯,函數套了個@response_parser的裝飾器,隻要有這個裝飾器存在,而且我debug時,跳過了該行。

我要做的就是:重新在這個被跳過的行(98行)打斷點,并且重新開始debug。

pycharm逐行調試時跳過了某行的解決辦法

到了這一行時,然後點選 Step Into 進入函數内部

就會發現進入到了裝飾器的内部(此時,裝飾器response_parser會調用98行的那個函數)

pycharm逐行調試時跳過了某行的解決辦法

是以後面需要做的就是,Step Into 46行函數的内部,因為這個就是在調用98行我們被跳過的那個函數

pycharm逐行調試時跳過了某行的解決辦法

此時我們已經成功進入被跳過的那個函數的内部。開啟快樂的該行函數的調試之旅。

4.總結

  1. debug遇到跳過某行的情況,首先我們可以先去确認該行是否有裝飾器修飾它
  2. 然後,在調試的時候,給該行打上斷點,在後面調試的過程中
  3. 我先進入到裝飾器的内部
  4. 再在裝飾器中找到被修飾的函數,也就是被跳過的那行的函數,進入該函數内部
  5. 在具體的函數内部,我就可以定位該函數内部到底發生了什麼。