2016-04-27 10 views
1

ライブラリ内の特定のページ制限(0x06B12000のようなアドレス)で発生すると思われるアクセス違反の原因を調べようとしています。Visual Studioブレークポイントでのページ割り当て

私はプログラムがある時点でミスアウトしているかどうかを調べるためにページ割り当てをトレースしようとしていますが、VirtualAllocはプログラムの開始時に一度だけ呼び出され、後では呼び出されないようです。

何か不足していますか?

+0

ジョブに特定のツールを使用してみてください。 CRTデバッグヒープを有効にするとよいでしょう。 – SergeyA

+0

MicrosoftのApplication Verifierをご覧ください。それは、ガードスペース(割り当てられていないページ)の前後で、異なるページの割り当てを分離するオプションがあります。 –

+0

私のマシンには管理者権限がありません。 – user5024425

答えて

0

"Break at Function"でmallocにブレークポイントを設定できます。 Studioにはランタイムライブラリ用のソースコードが付属していますので、そこでデバッグできます。

このブレークポイントにヒットしたら、条件を追加して、返されたメモリにあなたが探しているアドレスが含まれている場合にのみトリガさせることができます。 のようなもの(res <= 0x....) && (0x.... < res + nSize)。これは、VS2010のデバッグビルドで動作します。

リリースビルドは、ローカル変数の一部のみがレジスタに保持されるため、より困難です。

関連する問題