アドレスについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
no

アドレスについて

#1

投稿記事 by no » 15年前

現在,Escキーで終了するプログラムが手元にあります.
しかし,しばしEscキーで終了すると

「....exeの0x4b76ba36でハンドルされていない例外が発生しました:
0xc0000005: Accessviolation」

といったメッセージが表示されます.
これはおそらくアドレス0x4b76ba36に対応した変数に
格納されている数値がよくないことを示しているのだと思います.

みなさんはこのような場合,どのように対処していますか?

アドレス0x4b76ba36が対応している変数名を調べて,
その変数がよくない動作をする理由を探す,ということが一般的なのでしょうか.

また,この後に逆アセンブルなる画面も出現します.

VC++ windowsXPです.

たいちう

Re:アドレスについて

#2

投稿記事 by たいちう » 15年前

> アドレス0x4b76ba36が対応している変数名を調べて,
> その変数がよくない動作をする理由を探す,ということが一般的なのでしょうか.

多分一般的とは言えないでしょう。
「プログラムの途中で何らかの不正な処理を行い、
プログラム終了時に異常が検出される」という状況だと思いますが、
検出された時の情報から不正な処理まで遡ることは、非常に難しい場合が多いです。
(私のレベルの話。もっと上級の人はまた別の意見かもしれません)

終了時の異常が必ず(または高頻度で)発生するならば、デバッグは比較的楽になります。
異常が発生するという状態を保ったまま、異常とは無関係と思われる部分のプログラムを
削除し、異常が含まれる範囲を狭めていきます。

softya

Re:アドレスについて

#3

投稿記事 by softya » 15年前

VC++であれば、「呼び出し履歴」で自分のプログラムを探すと原因が特定しやすいです。
※ 「呼び出し履歴」は文字通り関数の呼び出し履歴です。OS中やライブラリ中で問題が起きていても遡れば、自分のプログラムまで戻ることができます。
自分のプログラムに遡ったら、呼び出している関数のパラメータなどを確認してみると良いでしょう。

dic

Re:アドレスについて

#4

投稿記事 by dic » 15年前

「プログラム」とありますが
ソースコードを含めて手元にある状況でしょうか?

no

Re:アドレスについて

#5

投稿記事 by no » 15年前

失礼しました.exeファイルだけでなく,ソースコードもあります.



なるほど,呼び出し経歴なるものがあるのですね.
便利そうなので使ってみたいと思います.

閉鎖

“C言語何でも質問掲示板” へ戻る