Eclipse、NetBeans、Visual Studio などのデバッガー
デバッガーは実行中にマシンコードで作業するので、疑問に思っています...ソースコードの行番号をどのように追跡しますか?
高レベル命令には多数の機械語命令があり、別の命令には機械語命令がない場合があるため (おそらく別の高レベル命令をサポートしているため)、行番号を追跡するのは非常に難しくありませんか?
Eclipse、NetBeans、Visual Studio などのデバッガー
デバッガーは実行中にマシンコードで作業するので、疑問に思っています...ソースコードの行番号をどのように追跡しますか?
高レベル命令には多数の機械語命令があり、別の命令には機械語命令がない場合があるため (おそらく別の高レベル命令をサポートしているため)、行番号を追跡するのは非常に難しくありませんか?
デバッグ フラグ (例: gcc -g ...
) を使用してコードをコンパイルすると、コンパイラはソース ファイルと行番号に関する情報をコンパイル済みバイナリに挿入し、デバッガが実行時にこの情報を使用できるようにします。 この回答では、デバッグ シンボルについて詳しく説明しています。