用pdb除錯有多種方式可選:
1. 命令列啟動目標程式,加上-m引數,這樣呼叫myscript.py的話斷點就是程式的執行第一行之前
python -m pdb myscript.py
2. 在python互動環境中啟用除錯
>>> import pdb
>>> import mymodule
>>> pdb.run(『mymodule.test()』)
3. 比較常用的,就是在程式中間插入一段程式,相對於在一般ide裡面打上斷點然後啟動debug,不過這種方式是hardcode的
if __name__ == "__main__":a = 1
import
pdbpdb.set_trace()
b = 2
c = a + b
(c)
然後正常執行指令碼,到了pdb.set_trace()那就會定下來,就可以看到除錯的提示符(pdb)了
常用的除錯命令
(pdb) l
497 pdb.set_trace()
498 base_data = {}
499 new_data = {}
500 try:
501 execfile(base_file_name,{},base_data)
502 -> execfile(new_file_name,{},new_data)
503 except:
504 logger.writelog(「error! load result log error!」)
505 print 「load cmp logs error!」
506 raise exception, 「load cmp logs error!」
507(pdb) b 504
breakpoint 4 at /home/jchen/regression/regressionlogcmp.py:504
(pdb) condition 4 a==3
(pdb) b
num type disp enb where
4 breakpoint keep yes at /home/jchen/regression/regressionlogcmp.py:504
stop only if a==3
(pdb) cl
clear all breaks? y
(pdb) disable 3
(pdb) b
num type disp enb where
3 breakpoint keep no at /home/jchen/regression/regressionlogcmp.py:505
(pdb) j 497
> /home/jchen/regression/regressionlogcmp.py(497)comparelog()
-> pdb.set_trace()
(pdb) a
_logger =
_base = ./base/mrm-8137.log
_new = ./new/mrm-8137.log
_caseid = 5550001
_tostepnum = 10
_cmpmap =
(pdb) p _new
u』./new/mrm-8137.log』
發現在命令列下除錯程式也是一件挺有意思的事情,記錄下來分享一下
python除錯命令
在python中使用pdb模組可以進行除錯 import pdb pdb.set trace 也可以使用python m pdb mysqcript.py這樣的方式 pdb 會自動停在第一行,等待除錯,這時你可以看看 幫助 pdb h 說明下這幾個關鍵 命令 color blue color siz...
Python偵錯程式命令
命令 功能h elp 顯示命令列表 help command 顯示command的文件 c ontinue 恢復程式執行 q uit 退出偵錯程式,不再執行任何 b reak number 在當前檔案的第number行設定乙個斷點 b path to file.py number 在當前檔案的第nu...
GDB除錯技巧,除錯命令
除錯時檢視依賴dsopidof tvm rpc server cat proc maps子程序除錯 1.vscode setupcommands output cpu simu dev bin ld library path ignorefailures false exec catch throw...