PDBモードでPythonプログラムをデバッグする方法
1155 ワード
以前windowsでずっと使っていたidelバンドの機能デバッグpythonプログラムはlinuxでデバッグしたことがありません.(多くの場合printだけ)ネットで検索してみます~
方法:
a.pyはpythonファイルです.
(Pdb)モードでの共通コマンド:
q debugを終了する
hすなわちhelp、すべてのコマンドを印刷する
hw印刷コマンドwの意味
n次の行に到達するまで、または戻るまで、現在の行を実行する
s現在のローを実行すると、停止する可能性があります(たとえば、現在のローに関数呼び出しがあるなど).n(next)との違いは、現在の行に関数呼び出しがある場合、s(step)は現在の行の実行を停止してその関数を呼び出すが、nは計算が完了するまで(次の行に達するまで)停止しないことである.
b(reak)[[filename:]lineno|function[,condition]]行番号または関数でブレークポイントを設定します.b 10,b foo,b foo,n==5のように,最後に関数foo()の入口にブレークポイントを設定するが,nの値が5の場合にのみ有効である.bコマンドにパラメータがない場合、すべてのブレークポイントを印刷します.
tb(reak)[[filename:]lineno|function[,condition]]一時ブレークポイント、hitのみ.
disable [bpnumber [bpnumber ...]] ポインティングラインのブレークポイントを無効にする
enable [bpnumber [bpnumber ...]] 指定した行のブレークポイントを有効にする
c次のブレークポイントに遭遇するまでプログラムを実行し続ける
wすなわちwhere、現在の実行点を印刷する位置
l[first,[,last]]現在行付近のソースコードを出力
p expressionは、その値を印刷するときに式を実行します.
a(rgs)現在の関数のパラメータとその値を印刷する
前回のコマンドを繰り返し実行
pdbが認識していないコマンドに遭遇するとpython式として実行されます.もしあなたが実行したい表現があれば、一番前に追加します!文字、例えば!n == 5
複数のdebugコマンドは、sなどの2つのセミコロンで区切られた行に書くことができます.s.
方法:
python -m pdb a.py
a.pyはpythonファイルです.
(Pdb)モードでの共通コマンド:
q debugを終了する
hすなわちhelp、すべてのコマンドを印刷する
hw印刷コマンドwの意味
n次の行に到達するまで、または戻るまで、現在の行を実行する
s現在のローを実行すると、停止する可能性があります(たとえば、現在のローに関数呼び出しがあるなど).n(next)との違いは、現在の行に関数呼び出しがある場合、s(step)は現在の行の実行を停止してその関数を呼び出すが、nは計算が完了するまで(次の行に達するまで)停止しないことである.
b(reak)[[filename:]lineno|function[,condition]]行番号または関数でブレークポイントを設定します.b 10,b foo,b foo,n==5のように,最後に関数foo()の入口にブレークポイントを設定するが,nの値が5の場合にのみ有効である.bコマンドにパラメータがない場合、すべてのブレークポイントを印刷します.
tb(reak)[[filename:]lineno|function[,condition]]一時ブレークポイント、hitのみ.
disable [bpnumber [bpnumber ...]] ポインティングラインのブレークポイントを無効にする
enable [bpnumber [bpnumber ...]] 指定した行のブレークポイントを有効にする
c次のブレークポイントに遭遇するまでプログラムを実行し続ける
wすなわちwhere、現在の実行点を印刷する位置
l[first,[,last]]現在行付近のソースコードを出力
p expressionは、その値を印刷するときに式を実行します.
a(rgs)現在の関数のパラメータとその値を印刷する
前回のコマンドを繰り返し実行
pdbが認識していないコマンドに遭遇するとpython式として実行されます.もしあなたが実行したい表現があれば、一番前に追加します!文字、例えば!n == 5
複数のdebugコマンドは、sなどの2つのセミコロンで区切られた行に書くことができます.s.