python有自帶的pdb庫,可以實現簡單的除錯功能,基本命令與gdb類似,不過功能不會有gdb那麼強大,pdb主要支援多斷點設定(可條件設定),**級單步除錯,檢視堆疊資訊,**檢視,post-mortem除錯,
詳細資訊可以檢視:
用pdb除錯有多種方式可選:
1. 命令列啟動目標程式,加上-m引數,這樣呼叫myscript.py的話斷點就是程式的執行第一行之前
python -m pdb myscript.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
2. 在python互動環境中啟用除錯
>>> import pdb
>>> import mymodule
>>> pdb.run(『mymodule.test()』)
3. 比較常用的,就是在程式中間插入一段程式,相對於在一般ide裡面打上斷點然後啟動debug,
[python]view plain
copy
print?
if__name__ ==
"__main__"
: a = 1
import
pdb
pdb.set_trace()
b = 2
c = a + b
(c)
正常執行指令碼後,到了pdb.set_trace()那就會定下來,就可以看到除錯的提示符(pdb)了
一些常用指令:
h(elp) [comman] #列印可用指令及幫助資訊
r(eturn) #執行**直到下乙個斷點或當前函式返回
b(reak) [[filename:]lineno | function[, condition]] #指定檔案某行或函式體來設定斷點
l(ist) [first[, last]] #檢視指定**段
n(ext) #執行下一行
s(tep) #執行下一行,若為函式則進入函式體
p #列印某個變數
a(rgs) #列印當前函式的引數
w(here) #列印堆疊資訊
d(own) #移至下層堆疊
u(p) #移至上層堆疊
j(ump) #跳轉到指定行
continue / c #繼續執行
disable [bpnumber [bpnumber]] #失效斷點
enable[bpnumber [bpnumber]] #啟用斷點
cl(ear) [filename:lineno | bpnumber [bpnumber]] #刪除斷點
q(uit)/exit #中止除錯並退出
Linux下Python基礎除錯
當手邊沒有ide,面對著python除錯犯愁時,你就可以參考下本文 pdb 命令除錯 參考 和 pdb help 首先你選擇執行的 py python m pdb myscript.py pdb 會自動停在第一行,等待除錯,這時你可以看看 幫助 pdb h 說明下這幾個關鍵 命令 斷點設定 pdb ...
Linux下Python基礎除錯
當手邊沒有ide,面對著python除錯犯愁時,你就可以參考下本文 pdb 命令除錯 參考 和 pdb help 首先你選擇執行的 py python m pdb myscript.py pdb 會自動停在第一行,等待除錯,這時你可以看看 幫助 pdb h 說明下這幾個關鍵 命令 斷點設定 pdb ...
linux下基礎命令
cp複製命令 cp命令複製檔案從乙個位置到另一位置。如果目的地檔案存在,將覆複寫該檔案 如果目的地目錄存在,檔案將複製到該目錄下 目錄不會被複寫 語法 語法是 cp 命令開關 source dest cp options source directory cp options target dire...