不具合発生箇所の特定方法について – プログラミング – Home

不具合発生箇所の特定方法について
 
通知
すべてクリア

[解決済] 不具合発生箇所の特定方法について


てんてく
 てんてく
(@てんてく)
ゲスト
結合: 21年前
投稿: 92
Topic starter  

Win2k vc++6.0

0x????????の命令が0x00000000を参照しました
などのエラーが発生する場合で
アドレスが0x00401000に近ければMapファイル生成と/FAcs
オプションでどうにかなるのですが
0x6xxxxxxxなどのアドレスで必ず起こるという再現性が無い場合の
いい対処方法はありませんでしょうか?


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

> 0x6xxxxxxxなどのアドレスで必ず起こるという再現性が無い場合

必ず起こるのに再現性が無いってのも変な話。
そのあたりのアドレスは Windows のシステム DLL の予約領域でしょう。
Dependency Walker で、そのアドレスを含む範囲にロードされている DLL を調べて(自
作 exe を Dependency Walker で開き、真ん中のモジュール一覧で Preferred Base の
値がそのアドレス以前で最も近いものを探す)、その DLL の関数を呼び出しているとこ
ろに間違いが無いか探してみてはいかがでしょう。


返信引用
aetos
(@aetos)
Noble Member
結合: 6年前
投稿: 1480
 

ごめん何か勘違いしたかもしれない。見なかったことにして。


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

オーバーランしすぎて、最終的に異常終了した場所が表示されてる
だけだと思われます

混合モードデバックも視野に入れて検討してください


返信引用
てんてく
 てんてく
(@てんてく)
ゲスト
結合: 21年前
投稿: 92
Topic starter  

解決したわけではないですが、特効薬と呼べるようなものがないという事が
わかったのでひとまず解決とさせていただきます。
Dependency Walkerも参考になりました。
地道にエラーアドレスの収集などしていきたいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました