Linux下Python基礎除錯

2021-08-03 15:03:51 字數 1811 閱讀 7400

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  

print

(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...