指定のアドレスの数値変更を検出したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
joh2121
記事: 4
登録日時: 12年前

指定のアドレスの数値変更を検出したい

#1

投稿記事 by joh2121 » 11年前

C++というより、統合開発ツールの質問になります。
現在、visual C++ 2010 EXPRESS で作業をしており、
とあるメモリ領域が不正に書き換えられるバグの原因を突き止めようとしています。

もしも、デバッガに
「特定のアドレスを監視し、それを書き換える命令があった瞬間にブレークする」
といった機能があれば、ほぼ一瞬で解決するのではと思っていますが、検索してもそれらしい情報はありません。
もしあれば非常に便利、つまり恐らく既に実装してある機能なのではと考えていますが……

もしもそれらしい情報をご存知の方がいらっしゃれば、ご教示願います。
よろしくお願いします。


※具体的には、以下の様なことを想定しています。

コード:


int* p = new int; // ここで、例えば p に 0x12345678 が代入されたとする
printf( "p = %d", p ); // ここにブレークポイントを設置し、一旦離脱。その後、監視アドレスに0x12345678を指定

/* ……色々あって、別のどこか…… */

/* 0x12345678 <= 何か と動作する命令*/  // ここで、自動的にブレークしてくれるとよい

なお、過去に別の掲示板にも一度書き込んだことのある内容です。
マルチポストとして問題があれば、質問を速やかに削除しますので、ご指摘いただけると有難いです

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 指定のアドレスの数値変更を検出したい

#2

投稿記事 by softya(ソフト屋) » 11年前

別の掲示板と可能なら相互リンクして下さい。
出来なくても、こちらからのリンクをお願いします。

さてご質問の件ですが、メニューのデバッグにブレークポイントの作成が有ると思います。
このメニューの中に新しいデータブレークポイントの作成が有ると思いますが、これがお望みの機能です。
で、これを動作させるにはデバッグで起動してブレークさせたあとに設定する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

joh2121
記事: 4
登録日時: 12年前

Re: 指定のアドレスの数値変更を検出したい

#3

投稿記事 by joh2121 » 11年前

ご教示いただき、ありがとうございました。
無事、件のバグを修正することが出来ました。

また、相互リンクの件、承知いたしました。以後同じケースがあればそのように致します。
今回の質問は、以下の掲示板で行いました。

【Visual C++ Q & A掲示板】
http://hpcgi1.nifty.com/MADIA/Vcbbs/www ... 020003.txt
でのものになります(拡張子が.txtですが、.cgi で実行されるので掲示板形式となっています)

閉鎖

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