作成日: 2006-11-16

デバッグ用のxyzzyにアタッチして、ステップ実行

書くとたいしたことは無いのですが、VCにあまりなじみが無い人は(NANRIみたいに)分からないってこともあるでしょうから。

目次

  1. 準備
  2. デバッグ用のxyzzyを作る
  3. アタッチ
  4. ステップ実行

準備

以下のものを準備します

その他、あったら便利なものとしてはUnixのコマンドが少々(rmとかpatchとか)

デバッグ用のxyzzyを作る

まずは普通にコンパイルできるようにします。

  1. 環境変数の設定
  2. MakefileのVCVERを環境に合わせて設定
  3. 必要ならばpatchをあてる(Visual C++ 2005 Express Edition用のpatchはpatch/13にあります)

普通にコンパイルできる状態になったら00READMEにあるようにコマンドプロンプトで「nmake CFG=d」を実行します。

コマンドプロンプトの図
「nmake CFG=d」を実行

正常に終了すると xyzzy/src/d/ 以下にデバッグ用のxyzzy.exeができます。

できたファイルを確認
必要なのは「xyzzy.exe」と「xyzzy.pdb」

アタッチ

普通のxyzzyを展開した場所にデバッグ用の xyzzy.exe を持ってきます。ついでにデバッグ情報の xyzzy.pdb も持ってきます。

/xyzzy/
 ├ xyzzy.exe      <= 置き換える
 ├ xyzzy.pdb      <= 持ってくる
 ├ xyzzycli.exe
 ├ xyzzyenv.exe
 ├ etc/
 ├ html/
 ├ info/
 ├ lisp/
 ├ privctrl/
 └ src/
    ├ d/
    ├ r/
    ├ res/
    ├ unicode/
    └ zlib/

んで、xyzzy実行。XYZZYHOMEを設定している場合は ~/.xyzzy をロードするので注意。エラーが出るかもしれないってだけですが。

デバッガを起動。

メニューから「プロセスにアタッチ」を選択。

「プロセスにアタッチ」メニューを選択
メニューから選択してみます

xyzzyのプロセスを選択。

プロセスにアタッチウィンドウ
説明のためxyzzyのタイトルを変えています

ステップ実行

プロセスにアタッチできたので、関数にブレークポイントを仕込みます。

「関数でブレーク」メニューを選択
メニューから選択してみます

ブレークポイントの作成ウィンドウ
今回は「Format::process」にブレークポイントを作成しました

ブレークポイントの表示部分
正常に作成されるとこんな感じで表示されます

その関数をてきとーに実行。するとブレークポイントで停止します。

停止の図
「Format::process」に入ったところで停止

あとはステップオーバー、ステップイン、ステップアウト、続行などなど、ご自由に。