勇み足な記事になってしまいましたが、GCC を 4.7.2 まで戻し、関連ライブラリをロールバックして組み合わせる事により正しく動作する様になりました。この辺りをの情報を整理出来たら、記事を書き直しますので御容赦ください。
Insight とは
Insight とは、旧 Cygnus Solution 社、現 RedHat 社が開発した、GUI ベースのソースコード デバッガです。ここで言うソースコード デバッガとは、C や C++ などのプログラミング言語 (高級言語) のソースコードに、ブレークポイントを張ってプログラムを途中停止したり、1行ずつシングルステップ実行して動作を確認する機能のことです。組込ソフトの開発や、ボード ハードウェアのデバッグ、更にはプログラミング言語の学習用にも大変重宝します。
どの様な GUI かは、【こちらのサイト】でスクリーンショットを見てください。
Insight は有志により Windows 上の GNU 開発環境 MinGW にも移植されている為、Windows 上のネイティブ・アプリケーションとしても動きます。元々は Cygwin や Linux 上で動く様に開発されています。
Linux が動いて居れば、例えば ARM 搭載のボード上でも動きます。ARM 搭載ボードの Linux 上で動かし、X-Window で画面だけパソコンに飛ばして、Linux カーネルのデバイス ドライバのソースコードをデバッグ可能です。また、Linux が動いて居なくても、ボード上で GDB Server が動けば、何らかの通信手段 (イーサネットやRS-232C) を介してパソコン上で高級言語のソースコード デバッグ可能です。
Insight は GDB (The GNU Project Debugger) と密に結合し、GUI 表示はスクリプト言語 Tcl/Tk でおなじみの Tk をベースに開発されたプログラムです。従って、Windows 上で Tk を動かし、その Tk の上で GUI プログラムが動いています。
Insight の特徴として、GDB と密に結合している為、GUI 表示されたソースコード上の変数の上にカーソルを置いただけで、クリックしなくても、その時点の変数の値が表示されます。
MinGW 用の Insight バージョン6.3 は、次の SourceForge のサイトからダウンロード可能です。尚、ソースコード デバッガはアセンブラ プログラム (機械語コード) をベースに動作しますので、CPU の種類 (命令セット アーキテクチャ、ISA と言う) 毎に別のプログラムが必要となります。GDB (The GNU Project Debugger) の中に、CPU アーキテクチャ毎の命令セット シミュレータが入って居るのです。
尚、ここに置かれているバイナリは32ビットの x86 (i686-pc-mingw) 用で、デバッグ情報の形式は DWARF-2 専用です。他の CPU アーキテクチャ (64ビットの x86_64 含む) 用には、ソースコードをダウンロードして修正やビルドをしなければなりません。
また、GCC バージョン 4.8.1 以降では、DWARF のバージョンは4が標準となっています。本来は gcc のコマンドラインオプションで「-g」と「-gdwarf-2」を2つを同時に指定すれば DWARF バージョン2が出力される筈なのですが、MinGW 用のコンパイラでは出力される DWARF のヘッダー情報は4でした。(GCC の仕様はこちら)
また、GDB で DWARF-4を読む為には、GDB や Insight (GDBtk) のバージョン7以降が必要です。
取り敢えず、MinGW のパッケージで利用するには、Insight のバージョン7 以降を自分で野良ビルドするか、GCC のバージョン3を追加インストール (すると今度は MinGW Runtime である/mingw/lib/libmingwex.a 等のバージョン不整合が生じるのですが、この件は別の記事に書く予定です) して使うしか無さそうです。
最新の Insight のソースコードは、次の SourceWare の Git サイトにてメンテナンスが再開している様です。
尚、ARM のクロスコンパイラ用だと、野良ビルドしなくても次のサイトにバイナリが在ります。
Insight の MinGW へのインストール方法
ファイルの展開と配置
上のサイトより、「mingw-insight-6.3.exe」をダウンロードします。このファイルは自己解凍形式です。クリックしてまずは適当なディレクトリに展開します。インストール済の MinGW の動作環境にいきなり展開するのは、必要なファイルが消えると困るので避けた方が良いかと思います。
次に、インストール済の C:\MinGW の下にディレクトリを作ります。ここでは、MinGW32 用のファイルは ウィンドゥズの C:\MinGW\local、MSYS の bash コンソール見えには、つまり /mingw/local にインストールする事にします。
ウィンドゥズのエクスプローラーを使って前記の展開されたフォルダ insight の下に降り、bin、include 等のフォルダ全てを C:\MinGW\local から C:\MinGW\local にコピー (もしくは移動) します。
パスの設定
- タスクバーにピン留め済のMアイコンをクリックして、Mintty ターミナルの bash コンソールを開きます。
- 「cd」コマンドを打ってホームディレクトリに行きます。
- ホームディレクトリに作成済の「.profile」ファイルの先頭から2番目 (「.」 の次) に、「/mingw/usr/local/bin」を追加します。
- 「source .profile」と打って、修正したファイルを読み込みます。
- 「which insifht」と打って、ファイルの所在を確認します。
/mingw/usr/local/bin/insight.exe と表示されれば大丈夫です。 - 「insifht&」 (最後の & はバックグラウンドで起動の意) と打って、次の様なInsight のウィンドウが立ち上がれば正しくインストールされています。
Insight の使い方
Insight は MinGW 以外の Linux 環境等でも動きますので、使い方は別カテゴリの記事に記載します。