2

MIPS でメモリ破損の問題をデバッグしています。アドレスに特定の値を書き込む人を知りたいです。

x86-64 では、mprotect+sigsegv+sigtrap を使用して、指定したアドレスへのメモリ書き込みアクセスをログに記録できます。

sigsegv ハンドラーで mprotect を使用する場合、メモリの保護を解除する必要があります。そうしないと、プログラムが常にシグナル ハンドラーをトリガーします。また、シグナルハンドラでは、どのような値がメモリに書き込まれるかを知ることは容易ではありません。

ハードウェア ウォッチ ポイントについても、同様の問題があります。メモリが書き込まれた後ではなく、その前に例外が発生します。

とにかく、メモリに書き込まれる値を知りたいですか? そして、それが期待値である場合、メモリを再度保護して実行を継続できますか?

4

0 に答える 0