2014年6月22日日曜日

デバッガの利用


ちょうどC#のサンプル

プログラムで

デバッガを使う部分が

あったので、ご紹介。




画像の左端の赤丸がブレイクをはっている部分です(4箇所)

今は2番目で停止しています。(黄色矢印部分が該当)

また、クイックウォッチという変数の値をチェックする機能もあります。

デバッグも簡単なので、IDEはやはり便利さを感じずにはいられません。

さて前回は、ソースプログラムを変更してデバッグする方法を紹介しました。

これは、自力でバグを見つけ出すための方法ですが、自分で学習するための

プログラムではいいかもしれませんが、実務でのプログラムになると

バグの発見やソースコードの変更が非常に大変になってきます。

そこで、ぜひ覚えておきたいのが、ツールの力を借りるということです。

デバッグを支援するツールのことを「デバッガ」といい、コンパイラと共に

プログラムの開発には欠かせないものです。

ここでは、代表的なデバッガの機能を紹介します。


ブレイクポイントの設定
デバッガを使えば、ソースプログラムの指定した位置でプログラムの動作を

停止させることができます。ブレイクポイントとは、その停止位置のことです。

ブレイクポイントを設定してプログラムを実行すると、その場所にきたときに

プログラムが停止します。

変数の表示と変更
ブレイクポイントでプログラムを一時停止した時に、そのときの変数の値を

参照することができます。要は、print文で出力するのと同じですが、

こちらの場合は、ソースプログラムを変更することなく、好きな変数の値を

表示させることができます。また、多くのデバッガでは変数の値を直接書き換え

その値でプログラムの実行を継続させることができます。

ただし、演算子をオーバーロードしているような場合は、見た目の記述どおりに

デバッガで表示できるとは限らないので注意が必要です。

ステップ実行
ソースプログラムの1行ごとに、プログラムを実行する機能です。

この機能は、プログラムが実際にどのように動作しており、どの時点で止まって

いるかを捉えることができるので、非常に役立ちます。

このとき変数の値を表示させておけば、値の移り変わりを調べることができます。

条件分岐が多いプログラムなどでは特に重宝するでしょう。


このようにデバッガを使うと、ソースプログラムを変更するよりはるかに

簡単で効率的にデバッグできるようになります。

デバッガが使える環境では、積極的にデバッガを利用して

時間と労力を節約したいものです。

もし、IDEの開発環境が整っていれば、たいていコンパイラとデバッガの

両方を備えているので、デバッグしやすいかもしれません。

しかし、Linuxでコマンドラインで開発してるような場合だと、デバッガが

用意されてなかったりとか、デバッグ版のバイナリを作成するのが

手間がかかりすぎるという場合もあって、ログを仕込んで実機検証の

方が早く解決できるということもあるでしょう。

既にある環境で開発する場合が圧倒的に多いので、

それに合わせてデバッグ手法も柔軟に変えるというのがおススメです(^^;)


今日の名言
人生をあるがままに受け入れない者は、悪魔に魂を売り渡す。
                               シャルル・ボードレール

幸福になる秘訣はできるだけ多方面に関心を持つこと。そして自分が関心を
持つ人物や事柄に対しては、なるべく腹立たしい気持ちを示さずに、できるだけ
親しい気持ちで接することだ。
                               バートランド・ラッセル

心は天国をつくり出すことも、地獄をつくり出すこともできる。
                               ジョン・ミルトン

人間は、起こることよりも、起こることに対する見解によってひどく傷ついてしまう。
                               ミシェル・エケム・ド・モンテーニュ

私たちが取り組むべき唯一最大の問題は、正しい考え方を選ぶことにある。
もしこれができたら、私たちの問題にはことごとく解決の道が開けていくであろう。
                               デール・カーネギー