python指令碼的除錯方法講解

2022-05-23 06:33:11 字數 1273 閱讀 4278

import pdb

pdb.set_trace()

也可以使用python -m pdb mysqcript.py這樣的方式

(pdb) 會自動停在第一行,等待除錯,這時你可以看看 幫助

(pdb) h

說明下這幾個關鍵 命令

>斷點設定

(pdb)b  10 #斷點設定在本py的第10行

或(pdb)b  ots.py:20 #斷點設定到 ots.py第20行

刪除斷點(pdb)b #檢視斷點編號

(pdb)cl 2 #刪除第2個斷點

>執行

(pdb)n #單步執行

(pdb)s #細點執行 也就是會下到,方法

(pdb)c #跳到下個斷點

>檢視

(pdb)p param #檢視當前 變數值

(pdb)l #檢視執行到某處**

(pdb)a #檢視全部棧內變數

(pdb)w 列出目前call stack 中的所在層。

(pdb)d 在call stack中往下移一層

(pdb)u 在call stack中往上移一層。如果在上移一層之後按下 n ,則會在上移之後的一層執行下乙個敘述,之前的 function call 就自動返回。

(pdb)cl 清除指定的斷點。如果沒有帶引數,則清除所有斷點。

(pdb)disable 取消所有斷點的功能,但仍然保留這些斷點。

(pdb)enable 恢復斷點的功能。

(pdb)ignore 設定斷點的忽略次數。如果沒指定 count,其初始 為 0。當 count 為 0 時,斷點會正常動作。若有指定 count,則每次執行到該中斷, count 就少 1,直到 count 數為 0。

(pdb)condition bpnumber [condition]

(pdb)j(ump) lineno. 跳到某行執行。只有在 call stack 的最底部才能作用。

(pdb)l  列出目前所在檔案中的位置。連續地 l 命令會一直列到檔案結尾,可以使用指定行數或範圍來列印。

(pdb)pp 和 p 命令類似,但是使用 pprint module(沒用過 pprint,詳情請參考 python library reference)。

(pdb)alias 以乙個"別名"代替"一群除錯命令",有點類似 c/c 的 macro(詳情請參考 python library reference)。

(pdb)unalias 取消某個 alias。

(pdb)[!]statement 在目前的環境(context)中執行敘述。

指令碼除錯方法

1 斷點與分步除錯 斷點 將游標切換到須要暫停執行的 行上,按下鍵盤 f9。設定斷點後,按 f5來執行指令碼。分步除錯 f10 當執行到斷點位置時,再按下f10切換到分布除錯模式,在分布除錯過程中按下f5使指令碼連續執行,直到遇到新的斷點為止 2 跟蹤執行於日誌與輸出指令碼除錯資訊 設定日誌級別,使...

Shell指令碼的除錯方法

shell提供了一些用於除錯指令碼的選項,如下所示 n讀一遍指令碼中的命令但不執行,用於檢查指令碼中的語法錯誤 v一邊執行指令碼,一邊將執行過的指令碼命令列印到標準錯誤輸出 x提供跟蹤執行資訊,將執行的每一條命令和結果依次列印出來 使用這些選項有三種方法,一是在命令列提供引數 sh x script...

Shell指令碼的除錯方法

shell提供了一些用於除錯指令碼的選項,如下所示 n讀一遍指令碼中的命令但不執行,用於檢查指令碼中的語法錯誤 v一邊執行指令碼,一邊將執行過的指令碼命令列印到標準錯誤輸出 x提供跟蹤執行資訊,將執行的每一條命令和結果依次列印出來 使用這些選項有三種方法,一是在命令列提供引數 sh x script...