電子書籍の厳選無料作品が豊富!

gcc -g とするとDEBUG情報が付加すると聞いたのですがいまいち理解できません。どなたかどのように使用するか教えてください。

A 回答 (3件)

プログラムが異常終了した時には、OSは異常終了したアドレスを表示します。


DEBUG情報の基本としてこれらの実行アドレスがソース内の行数のどのあたりになるかが記述されています。
Windowsでは、異常終了した時、ソース行NOを表示するのはOSではなく、各アプリの責任になります。
C言語(GCCを含む)などのネイティブな言語では、例外処理を捉えて、アドレスから行NOを検索するルーチンを自作する必要があります。
GDBなどのデバッガーはDEBUG情報を使いますが、役にたつのは開発中なので、私としては、あまり意味がないように思えます。
    • good
    • 0

gcc にてコンパイルすると、プログラムは機械語になります。


機械語は人間が読みやすいものではないので、
そのままではデバック作業がとても難しくなります。

デバッグ情報とは、元のプログラム言語とコンパイル後の機械語の紐づけ情報です。
例)
データ領域 1234 番地の値は、Hoge 型の変数 hoge である
実行領域 5678 番地のコードは、ソースファイル foo.c の 42 行目に相当する

この情報があるおかげで、
デバッグ作業中に変数の中身をわかりやすく表示したり、
現在の実行位置を元のソースファイルで指し示すことができるようになります。

IDE の様な環境でデバッグをするならば必須の情報でしょう。
    • good
    • 0

例えばデバッガで変数の値を調べたいときに, 変数のアドレスがわからなくても変数名を使って調べることができる.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!