Windows 版 Squeak VM のデバッグ方法について書きます。分かってしまえば当たり前ですが、知らないと意味不明なので。
3.7.1 (現在 Squeakland イメージに含まれている物)
ダウンロードしてインストール
Makefile.mingw32 の修正
なぜか make の引数で CFLAG を渡すとエラーになるので、野蛮ですが Makefile を手で書き換えます。参考までに diff を載せますが、ようするに最適化オプションをことごとく無効にするのと、strip を消す事です。最初 -f が最適化オプションだと知らずにはまりました。
96c96 < CFLAGS= -g -mpentium -mwindows -O3 -fomit-frame-pointer -funroll-loops -fschedule-insns2 --- > CFLAGS= -g -mpentium -mwindows -O0 113c113 < LDFLAGS= -mwindows --- > LDFLAGS= -g -mwindows 154d153 < strip --strip-all $(VMOUTDIR)/$(VM) 183d181 < strip --strip-all $(OBJDIR)/$(LIB).dll
これで gdb が使えます。cygwin でも mingw でも同じように使えるようです。ファイル名が見つからない場合がよくありますが、以下のコマンドで検索パスを追加できます。
(gdb) dir ~/src/3.7.1/win32/plugins/OggPlugin
Meadow でデバッグする方法も調べようと思ったのですが、あまりにも面倒臭そうなので、コマンドラインでデバッグする事にしました。
参考
- http://d.hatena.ne.jp/propella/20050624/p2: 3.6 の VM で良いなら VisualStudio が使えます。はっきり言ってこれ最強。マイクロソフト万歳。