GDB スタブを書いてみよう その11
まずは細かな TODO を片付ける。
- gdbCatchException の処理共通化
- 全ての割り込みハンドラに対応する
- if (remote_debug)
- 一番最初の breakpoint exception で stub ハンドラをインストール
- breakpoint() 関数の追加
行番号が表示されない問題
以下のような条件をそろえているのにうまくいかない。
- -g つけてる
- objdump で行番号情報が見える
これは手詰まりと感じていたのだがふと Mingw GDB を wine で動かしてみた。7.0 は動かないので古いバージョンで
Program received signal SIGSEGV, Segmentation fault. testClassMutex () at mutex.cpp:132 132 *p = 1;
ありゃ。簡単に出てしまった。つまり GDB が悪かったという結論になる。
Mingw GDB と自前でビルドした GDB は
- 6.3 : This GDB was configured as "i686-pc-mingw32"...
- 7.0.1 : This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=i586-mingw32msvc".
という違いがある。
7.0.1 を i686-pc-mingw32 でビルドしてみたが行番号は表示されなかった。
gdb 6.3 はうまくビルドできない。
Mingw のサイトからソースを持ってきても同じ。
次の一手
- 行番号