第7回 Windowsアプリのデバッグ&リリース

ステップインしたメソッド内で処理が停止した画面[F11]キーを押して、FormFadeOutメソッド内部に入って処理が停止したところ。(1) FormFadeOutメソッドの実装開始部分(「{」の場所)で処理が停止している。停止している箇所は黄色の矢印で示されている。「{」の右隣に「≦4ミリ秒経過」とあるのは、ステップ実行により、この行に制御が移るまでの経過時間。(2) [呼び出し履歴]ウィンドウ(「コールスタック」とも呼ばれる)。[呼び出し履歴]ウィンドウを表示するには、メニューバーから[デバッグ]−[ウィンドウ]−[呼び出し履歴]を選択すればよい。このウィンドウでは、現在の処理がどういう順番で呼び出されたのかが分かる。直近に呼び出されたメソッドが最上位に、そのメソッドを呼び出したメソッドがその下に……という順序で、呼び出しのスタート地点が一番下に表示される。例えばこの画面では、最初に「MyClock.exeのMyClock名前空間のProgramクラスのMainメソッド」が呼ばれ(一番下)、その次に「DisplayクラスのmenuItemClose_Clickメソッド」が呼ばれ(上から2つ目)、最後に「FormFadeOutメソッド」が呼ばれている(一番上)ことが分かる。この画面の例は単純だが、メソッドの呼び出しが複雑な場合、この[呼び出し履歴]ウィンドウが役立つことがある。[呼び出し履歴]ウィンドウ内のメソッドをダブルクリックすれば、そのメソッド呼び出しの該当行にジャンプできる。[外部コード]というのは、大ざっぱには.NET Frameworkが提供するコードのことだ。どんなメソッドが実際に呼び出されているかは[呼び出し履歴]ウィンドウを右クリックしてコンテキストメニューから[外部コードの表示]を選択すればよい。あまりに多くのメソッドが表示されるのでビックリするかもしれないが、Windowsアプリはこのように自分が書いたコードと.NET Frameworkが提供するコードが深く絡み合って実行されていることがよく分かるだろう。

ステップインしたメソッド内で処理が停止した画面[F11]キーを押して、FormFadeOutメソッド内部に入って処理が停止したところ。(1) FormFadeOutメソッドの実装開始部分(「{」の場所)で処理が停止している。停止している箇所は黄色の矢印で示されている。「{」の右隣に「≦4ミリ秒経過」とあるのは、ステップ実行により、この行に制御が移るまでの経過時間。(2) [呼び出し履歴]ウィンドウ(「コールスタック」とも呼ばれる)。[呼び出し履歴]ウィンドウを表示するには、メニューバーから[デバッグ]−[ウィンドウ]−[呼び出し履歴]を選択すればよい。このウィンドウでは、現在の処理がどういう順番で呼び出されたのかが分かる。直近に呼び出されたメソッドが最上位に、そのメソッドを呼び出したメソッドがその下に……という順序で、呼び出しのスタート地点が一番下に表示される。例えばこの画面では、最初に「MyClock.exeのMyClock名前空間のProgramクラスのMainメソッド」が呼ばれ(一番下)、その次に「DisplayクラスのmenuItemClose_Clickメソッド」が呼ばれ(上から2つ目)、最後に「FormFadeOutメソッド」が呼ばれている(一番上)ことが分かる。この画面の例は単純だが、メソッドの呼び出しが複雑な場合、この[呼び出し履歴]ウィンドウが役立つことがある。[呼び出し履歴]ウィンドウ内のメソッドをダブルクリックすれば、そのメソッド呼び出しの該当行にジャンプできる。[外部コード]というのは、大ざっぱには.NET Frameworkが提供するコードのことだ。どんなメソッドが実際に呼び出されているかは[呼び出し履歴]ウィンドウを右クリックしてコンテキストメニューから[外部コードの表示]を選択すればよい。あまりに多くのメソッドが表示されるのでビックリするかもしれないが、Windowsアプリはこのように自分が書いたコードと.NET Frameworkが提供するコードが深く絡み合って実行されていることがよく分かるだろう。