CodeGym /コース /Python SELF JA /PyCharm Debug

PyCharm Debug

Python SELF JA
レベル 18 , レッスン 3
使用可能

9.1 デバッガの起動

PyCharmを使ってデバッグプロセスを学んでいくよ。それが理にかなってて、なおかつ楽しいからね。 今からそのことを納得してもらうよ。

PyCharmではあなたのプログラムを2つのモードで実行できるよ:

プログラム実行モード パネル上のアイコン ショートカットキー
通常実行 Shift+F10
デバッグモードでの実行 Shift+F9

普通のモードにはもう慣れてるだろうね:プログラムは起動して、実行して、終了する。でもデバッグモードには新しい発見がたくさんあるよ。

デバッグモード

デバッグモードではプログラムをステップバイステップで実行できるんだ。正確には、1行ずつ: 一行一行実行できるよ。そして、プログラムの各ステップで変数の値を確認することができるんだ(各行の実行後に)。さらには、変数の値を変更することもできるよ!

デバッグの基本を身につけるには、以下の3つを学ぶ必要があるよ:

  • ブレークポイント
  • ステップ実行
  • 変数の値の確認

9.2 ブレークポイント (Break Points)

IDEを使うとコードに特別なマーカーを配置できるよ — ブレークポイント (break point)。デバッグモードでプログラムを実行するとき、プログラムがbreak pointとしてマークされた行に到達するたびに一時停止するんだ。

break pointを特定の行に設定するには、PyCharmでその行の左側をクリックするだけ。例:

これによってその行はブレークポイント(break point)としてマークされ、PyCharmがその行を赤くハイライトするんだ:

もう一度その行の左側をクリックすると、設定されたbreak pointが解除されるよ。

また、break pointを現在の行に設置するにはショートカットキーCtrl+F8を使用することもできるよ。もう一度Ctrl+F8を押すと、break pointが削除されるんだ。

9.3 デバッグモードでのプログラムの実行

プログラムに少なくとも1つのブレークポイントがあるなら、デバッグモードでプログラムを実行できるよ(Shift+F9または「バグのアイコン」)。

デバッグモードで開始すると、プログラムは通常通りに実行される。でも、break pointとしてマークされた行に達すると一時停止するんだ。例:

スクリーンショットの上部では2つのブレークポイントがあるプログラムコードが見えるよ。プログラムは行2 — 青い線でマークされたところで止まってるよ。行2はまだ実行されていない: コンソールにはまだ何も表示されていないよ。

画面の下部では、デバッグモードのパネルが見えるよ: Thread & variablesパネルやConsoleパネル(画面出力)、デバッグモード用の一連のボタンだ。

プログラムを一時停止から解除するには(実行を再開するには)、左下のパネルにあるResume Programボタンを押せばいいよ(またはF9キーを押してもいい)。

そのボタンを押すと(またはF9を押すと)、プログラムは次のブレークポイントに達するか、終了するまで実行を続けるよ。このボタンを押した後に表示されるものを見てみよう:

プログラムは2番目のブレークポイントで停止して、コンソールに"Hello""and"という言葉が表示された — これは画面に表示される3つの行のうち2つだけが実行されたことを示しているんだ。

9.4 ステップ実行

プログラムがデバッグモードで実行されている場合、ステップバイステップで実行することもできるよ: ワンステップ — ワンライン。ステップ実行のためには2つのショートカットキーがある: F7とF8だ。それぞれが現在のコード行を実行する。でもまず、break pointを使ってプログラムを停止する必要があるよ。

プログラムを1行ずつ実行したい場合は、最初からbreak pointを設定する必要があるよ — プログラムの最初のコード行に。そして、デバッグモードでプログラムを起動するんだ。

プログラムが停止したら、1行ずつの実行を開始できるよ。F8キーを1回押すごとに1行進むんだ。

これがプログラムが停止した後にF8キーを1回押した後の様子だよ:

最初の行 — print("Hello") — が既に実行されて、現在の行は2番目の行だよ。スクリーンショットの下部では"Hello"という言葉がすでに画面に表示されているのが見えるね。

9.5 関数内へのステップ実行

プログラムに独自の関数があって、それをステップ実行しつつ関数の内部に入りたいときは、「関数内に入るため」のキーとしてF7を使うんだ。F8ではなくね。

例えば、プログラムをステップ実行していて今5行目で停止しているとしよう。F8を押すと、PyCharmはそのまま5行目を実行して6行目に進むんだ。

でもF7を押すと、PyCharmは関数hello()をステップ実行するよ:

すごく簡単だね。メソッドの中で何が起こっているのか、あまり重要でなければF8を押し、重要だと思ったらF7を押して、その全コードをステップ実行しよう。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION