2015年2月14日土曜日

ワトソン博士を有効にする

相変わらず、XPのデバッグを続けています。

この前、やっとデバッグのプロセスが確認できたので、現地端末にダンプファイル出力設定に出かけました。

最初、起動した状態の端末を渡されたので、drwtsn32.exeを起動し、ダンプ出力先を設定し保存。
念のため、再度drwtsn32.exeを再起動すると、設定した筈の値が反映されていない。
おかしいなー、OKボタン押さなかったのかなーと思って再度試したのですが結果は変わらず。

まあ、ユーザー権限でログオンしていたから機能制限がかかっていた、というオチなんですけどね。
でも、普通に起動できるんだ、という点に僅かばかり感動。

アドミン権限で入り直して無事設定反映。念のため、仕込んでおいたアベンド発生手順を実行。
。。。と、ダンプファイルが出力されない。何故だ。


ここで許可されていた現場での作業時間がタイムアップしたので現場を撤収。


どうも、事前にテストしていた端末と現場の端末では何かしらの設定が違うらしい。
とりあえず、気になるのは以下の記事にあるレジストリ関連。
Windows のワトソン博士を有効または無効にする方法
技術/Windows/メモリダンプ取得方法メモ


次回行ったら確かめてみよう。

2015年2月5日木曜日

Visual Studioでダンプファイルを解析する

つまらないことで嵌ってしまったので、自戒と備忘のために記載。

Windows7やらWindowsXP(!?)やらでダンプを取得するところまではこれまでに書いたとおり。
Window7でダンプを取得する
WindowsXPでダンプ出力する


この際に取得したダンプの解析方法ですが、ダンプファイルを開いて、Visual Studioが開くところまでは記憶の通り。
でも、ここからの記憶が曖昧で、どうやって該当ソースコード箇所の特定まで行くか、が覚えていなかったんですよねーーー(だって2年ぶりくらいだったし、、、)

ダンプファイルを開いただけだと、何も起こらない、ということに気付くのに暫しの時間を要しました。そう、「デバッグ開始」をしないといけなかったんですよね。

で、デバッグの開始をしたのですが、次に出てきたのがアセンブラの画面(自分が試したサンプルではstrcat.asm)。これでは、ソースコードのどこがおかしいか、分からない。


で、また気付くのに暫しの時間を要しました。そう、「呼出し履歴」 をみて、デバッグ位置を変更しなければいけない。たったこれだけだったんですけど、すごく嵌りました。


やっぱり、ツールは定期的に使わないと忘れてしまう、ということを痛感した出来事でした。
(最近はEclipse系の使用が多くて、Visual Studioを使うことも間が空いてしまっていました)