Eclipse のような開発環境を使用する利点は、多くのファイルや設定を一括管理できることは もちろんであるが、debug のやりやすさも、もう一つの利点である。ここでは C/C++ での プログラム開発を行う場合の debug の方法を概観してみる。
ここでは MinGW/MSYS を Eclipse/CDT のもとで動かすことを行っている。ここで使える debugger は gdb である。ただし、MinGW 用に port したものが必要である。残念ながら、MSYS/MinGW の 導入パッケージには default では gdb は含まれない。その場合、まずは gdb をインストールする ことから始める必要がある。
gdb のインストールにはソースから行うものと、Windows用 binary package から インストールするものがある。前者は、MSYS/MinGW の他に flex をインストールしてある必要がある。 筆者は、binary package からインストールした(gdb-6.3-2.exe)。インストール先は、MinGW と 同じになるようにする(筆者の場合は C:\MinGW、ここを指定すると C:\MinGW\bin に実行イメージが 格納される)。
一般に debugger を利用するには、symbol など debug 用の情報を付加した compile が必要である。 Eclipse/CDT の場合、default では debug は compile option として -O0 -g3 が指定され、 release は -O3 が指定される。特に変える必要は無い。
ここでは、前に示した Windows program の単純な例題 を使って みる。ここでは Windows message のうち、command message(メニューなどが選ばれた 時に発生する message)を処理する部分 oncmnd.cpp を debug するものとしよう。C/C++ 画面で oncmnd.cpp を開いておく。
この状態から実行する(debug モードでの build は済んでいるものとする)わけであるが、 違いは run の代わりに Debug を選ぶことである。
すると、Run を選んだ時と同様の画面が出るので、project や folder が正しく設定されているか
確認して、Debug ボタンを押す。
すると、Perspective を切り替えるぞ画面が出るので、Yes を選択する。
C/C++ perspective から debug perspective に切り替わる。
Break したい場所へカーソルを持っていき、「Toggle Line Breakpoint」を選ぶ。
Breakpoint の位置に印がつけられる。
実行を再開する。
マウスでメニューを叩くと、Windows message が発生し、この関数に入り breakpoint で
一時停止する。variables の窓に、局所変数のその時の値も示される。
Debug を終了したら、フレーム右上をクリックして perspective を選ぶ(通常は C/C++)。
Debug時の表示項目は選択可能。