1

x86 プログラムをエミュレートする専用のエミュレーターを作成しており、その効果を実際のものと比較することで命令の単体テストを行っています。これは、デバッガーでブレークポイントを設定し、レジスター、フラグ、およびさまざまなメモリ アドレスを調べて、指定された時点でエミュレーターと同じ値に設定されているかどうかを確認することによって行われます。

通常の動作をテストするのに非常に適しています。

しかし、発生する可能性のある CPU 例外を単体テストするにはどうすればよいでしょうか? 例えば。セグメンテーション違反、ゼロ分割など?通常のユーザーモードデバッガで例外割り込み番号などを取得することはできますか?

4

2 に答える 2

3

いいえ、そうは思いません。ディスクに保存されたメモリのページを考えてみましょう。アクセスすると、ページ フォールトが生成され、カーネルがそれをインターセプトし、ディスクからページを読み取り、何も起こらなかったかのように実行を再開します。

したがって、本当の問題は、ユーザーモードを終了する命令の動作をユーザーモードで確認できないことです。同じことが実際に a にも当てはまります。SYSCALL

于 2013-09-12T11:21:01.423 に答える