Linuxのデフォルトのデバッグシンボル形式は何ですか?

Linuxのデフォルトのデバッグシンボル形式は何ですか?

GCCドキュメントこの-gオプションを教えてくださいオペレーティングシステムのデフォルト形式(stabs、COFF、XCOFF、またはDWARF 2)でデバッグ情報を生成します。

それでは、Linuxのデフォルトのデバッグシンボル形式は何ですか?これを何と呼びますか?


更新:ちょうど15歳の少年が見つかりましたgccメーリングリストディスカッション当時のネイティブフォーマットはStabsであり、以後DWARF2への切り替えを考慮していたそうです。しかし、それは15年前です...更新がありますか? =)

ベストアンサー1

Linuxでは、デフォルトはDwarf 2および/または4です。これを確認するには、readelf --debug-dump=infoFedoraでデバッグシンボル(または削除されたシンボル)を含むバイナリで実行します。たとえば、glibc-debuginfoインストール後に実行すると、readelf --debug-dump=info /usr/lib/debug/bin/gencat.debug次の結果が表示されます。

 <1><ea>: Abbrev Number: 0
  Compilation Unit @ offset 0xeb:
   Length:        0x5c (32-bit)
   Version:       2
   Abbrev Offset: 0x52
   Pointer Size:  8
 <0><f6>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <f7>   DW_AT_stmt_list   : 0x83
    <fb>   DW_AT_ranges      : 0x0
    <ff>   DW_AT_name        : ../sysdeps/x86_64/crti.S
    <118>   DW_AT_comp_dir    : /usr/src/debug////////glibc-2.21/csu
    <13d>   DW_AT_producer    : GNU AS 2.25
    <149>   DW_AT_language    : 32769   (MIPS assembler)

これはDwarf 2情報セットです(Version:バージョン情報はヘッダ参照。同じバイナリにはDwarf 2とDwarf 4の両方が含まれています)。

おすすめ記事