17

私はプログラミングを数年間学び、デバッグを頻繁に使用しましたが、デバッグのコア原則、それがどのように機能するかをまだ理解していませんか?単一行のデバッグ(ステップイン)はどのように実装されていますか?

たとえば、 Java 言語を取り上げます。

デバッグ実装のために CPU は何をしますか?

JVMはデバッグ実装のために何をしますか?

Eclipseはデバッグ実装のために何をしますか?

上記の 3 つの内容は、debugとは関係がない可能性があります。私はそれを推測しただけです。私はしばらくググってみましたが、私にとって有益なものは何も得られませんでした (もちろん、デバッグ自体は複雑です)。もっと簡単な解釈を望みます。

ありがとう。

4

3 に答える 3

11

各プロセッサには、デバッグ メカニズムの独自の設計があります。

x86 CPU の場合、プロセッサにはデバッグ ブレークポイントとブレーク条件を格納する 6 つのデバッグ レジスタがあります。Intel x86 CPU のデバッグ メカニズムについては、次の記事を簡単に参照してください: http://en.wikipedia.org/wiki/X86_debug_register

Java デバッグ メカニズムの場合は、質問の下のコメント ストリームで Mukul Goel が指摘したhttp://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.htmlを参照してください。

于 2012-10-29T07:50:20.743 に答える
1

デバッグを容易にするために(ブレークポイントなどを使用して)、コンパイラーは、生成するコンパイル済み出力(つまり、Javaの場合はバイナリファイルまたはJVMバイトコードファイル)に特定の追加情報を挿入します。この追加情報により、コンパイルされた出力の各行を対応するソースファイルにマッピングできます。

私はあなたの質問のすべての部分に答えたわけではありませんが、うまくいけばあなたが始めるのを助けるのに十分です。これらのリソースを確認してください。

http://en.wikipedia.org/wiki/Debug_symbol

デバッガーはどのように機能しますか?

于 2012-10-29T07:52:55.897 に答える
0

これを確認してください。デバッグ中の内容の概要が表示されます

http://www.indiastudychannel.com/resources/102306-Debugging-Software-Engineering.aspx

于 2012-10-29T09:01:29.893 に答える