スポンサーリンク

PyWebでデバック(pdb利用)

この記事に書かれていること

 PyWebでデバッカー(pdb)が利用できるようになりました。しかし、ブラウザで実行する関係からいくつかの制約があります。本記事では、pdbの操作方法と制約事項について説明します。

pdb利用方法

(1)pdbのインポート

 デバックしたいプログラムでPdbをインポートします。

(2)ブレークポイント

 プログラムを止めたい箇所にブレークポイント命令(breakpoint())を挿入します。(複数箇所に挿入できます)

(3)プログラムを実行

 デバッカー(Pdb)は、PCモードのみ実行可能なため、PCモードにします。

右上の緑三角形ボタンでプログラムを実行します。

(4)デバッカーパネル

 実行するとデバッカーのパネルが開きます。プログラムはブレークポイントの行まで実行されています。このパネルでデバッカーコマンドを入力しながらデバックを行います。

注意点➀

ブラウザの別タブをクリックするとパネルが閉じられ、デバッグが終了してしまいます。
別サイトを見ながらデバッグを行うには、Chromeでデバッグを行っている場合はEdgeでサイトを開く、Edgeでデバッグを行っている場合はChromeでサイトを開くようにしてください。

注意点②

パネルには最大23行までしか表示できません。



主要コマンド一覧

コマンド 説明
l プログラム表示
 l . 実行行の前後を表示
 l <開始行>,(<終了行>) 行指定で表示。終了行は省略可能
n 次行を実行
s 次行を実行。次行が関数なら関数内に入り停止
r 関数内のプログラムを全て実行
p 変数表示
 p <変数名> 指定した変数の内容を表示
c 次のブレークポイントまで実行(ブレークポイントがなければ残りのプログラム全て実行)
b ブレークポイントの管理
 b <行番号> 新たなブレークポイントを設定
 b 設定されたブレークポイントを表示
cl ブレークポイントの解除
 cl 全てのブレークポイントを解除
 cl 番号 番号 番号 特定のブレークポイントを解除。番号は上記「b」コマンドで確認。複数解除したい場合はスペース区切りで記述
h Pdbのヘルプ
 h コマンド一覧表示
 h <コマンド名> コマンドのヘルプを表示
q デバッガの終了

注意点③

パネルには次に実行する命令が表示されます。しかしプログラムの最後の命令が関数の場合は、最後の命令が表示されずに1行目の命令が表示されてしまいます。ここで「n」コマンドを入力することによって、最後の命令が表示されます。

デバック

 実際にデバッグを行っていきます。

(1)プログラム表示

 「l .」コマンドで実行行の前後のプログラムを表示します。

<結果>

(2)次行実行

 「n」コマンドで次の行(7 x = random.randint(0,200))を実行します。

<結果>

(3)変数確認

 変数xの内容を「p」コマンドで確認します。

<結果>

(4)次行実行

 「n」コマンドで、次の行(9 if x >= 18:)を実行します。

<結果>

 xは8なので、次はelseの中が実行されるようです。

(5)次行実行

 「n」コマンドで、次の行(print(x,”未成年”)を実行します。

<結果>

 次の命令は最後の命令になるはずですが、関数なので(注意点③を参照)、最初の命令が表示されてしまいました。

 ここで「n」コマンドを入力します。

<結果>

 最後の命令が表示されました。

(6)残りのプログラムを実行

 「c」コマンドで残りプログラムを全て実行します。

<結果>

 プログラムが終了するとパネルが閉じられ、今までの実行結果がコンソールに表示されます。

タイトルとURLをコピーしました