おしながき

ELFファイルフォーマット

  • .eh_frameセクションの構造と読み方

DWARFファイルフォーマット

NCURSESライブラリ

  • NCURSES Programing HOWTO ワタクシ的ほんやく
    1. Tools and Widget Libraries
    2. Just For Fun !!!
    3. References
  • その他、自分メモ
  • NCURSES雑多な自分メモ01


最近の更新 (Recent Changes)

2019-09-24
2013-10-10
2013-10-03
2013-10-01
2013-09-29
目次に戻る:DWARFファイルフォーマット

TAG名(DW_TAG_xxxx)一覧と値、意味

ということで、タイトル通りDW_TAG_xxxxな一覧でございます。

(2013/08/21 作成開始: まだまだえーかげんよ。)

No. TAG名 Code 意味 対象言語 参照ページ(詳細)
1 DW_TAG_array_type 0x01 配列の情報 ほぼ全言語 TAG詳細(その09)
2 DW_TAG_class_type 0x02 (オブジェクト指向言語の) クラスの情報 C++ / JAVA / etc TAG詳細(その10)
3 DW_TAG_entry_point 0x03 Fortranでの交替可能なエントリポイント Fortran TAG詳細(その02)
4 DW_TAG_enumeration_type 0x04 enum型(列挙型)自体の情報です。
enum型の各要素は、emueratorなTAGを参照(No.34)
C / C++ / etc TAG詳細(その09)
5 DW_TAG_formal_parameter 0x05 関数/メソッド/サブルーチンの引数 C / C++ / etc TAG詳細(その06)
6 DW_TAG_imported_declaration 0x08 別のモジュールでの宣言をインポートしたモジュール側で別名アクセスする際の情報(オーバーライド) C++ / Fortran (原文3.2.3)
7 DW_TAG_label 0x0a (CやC++での)Goto文のラベル C / C++ / etc TAG詳細(その05)
8 DW_TAG_lexical_block 0x0b {と}で括られたソース上の語彙ブロック(C言語の場合) C / C++ TAG詳細(その05)
9 DW_TAG_member 0x0d 構造体/union/クラスのデータメンバの情報 ほぼ全言語 TAG詳細(その10)
10 DW_TAG_pointer_type 0x0f ポインタ修飾子”*”の情報 C / C++ TAG詳細(その08)
11 DW_TAG_reference_type 0x10 C++での「参照渡し(”&”指定)」を示す修飾子の情報 C++ TAG詳細(その08)
12 DW_TAG_compile_unit 0x11 オブジェクトファイル(".o")単位のヘッダ情報 C / C++ / etc TAG詳細(その01)
13 DW_TAG_string_type 0x12 文字列型の情報
※CやC++の文字列は、所詮char型の配列なので対象外
Fortran / etc TAG詳細(その14)
14 DW_TAG_structure_type 0x13 構造体の情報です ほぼ全言語 TAG詳細(その10)
15 DW_TAG_subroutine_type 0x15 「関数型」の情報
※C/C++ではこの型の変数をポインタ修飾子で修飾した形で「関数ポインタ」を表現
C / C++ TAG詳細(その13)
16 DW_TAG_typedef 0x16 typdefで定義したユーザ型の情報 C / C++ TAG詳細(その08)
17 DW_TAG_union_type 0x17 C/C++の共用体(union)の情報 C / C++ TAG詳細(その10)
18 DW_TAG_unspecified_parameters 0x18 VARGの様な、明確に宣言かつ固定されていない関数の引数の情報 C / C++ / etc TAG詳細(その02)
19 DW_TAG_variant 0x19 構造体の可変部分にある変数 ??? TAG詳細(その05)
20 DW_TAG_common_block 0x1a Fortranの「共通ブロック」 Fortran TAG詳細(その07)
21 DW_TAG_common_inclusion 0x1b (Fortran) 共通ブロックを含むサブルーチンの情報 Fortran TAG詳細(その02)
22 DW_TAG_inheritance 0x1c (オブジェクト指向言語の) 継承したクラスの情報
JAVAで、intefaceクラスの実体(ロジック)を書いたメソッドの情報
C++ / JAVA / etc TAG詳細(その11)
23 DW_TAG_inlined_subroutine 0x1d インライン関数/インラインサブルーチンのインスタンス情報 C / C++ / etc TAG詳細(その04)
24 DW_TAG_module 0x1e "module"の考え方を持つ言語における、モジュールのデバッグ情報 modula2 (原文3.2.1)
25 DW_TAG_ptr_to_member_type 0x1f C++での「クラスメンバへのポインタ」型の情報 C++ TAG詳細(その13)
26 DW_TAG_set_type 0x20 Pascalの”set”の情報 Pascal / etc? TAG詳細(その14)
27 DW_TAG_subrange_type 0x21 UPCの”subrange”の情報 UPC TAG詳細(その14)
28 DW_TAG_with_stmt 0x22 ”With句”の情報 Pascal / Modula2 TAG詳細(その05)
29 DW_TAG_access_declaration 0x23 (オブジェクト指向言語の)アクセス記述子の情報 C++ / JAVA TAG詳細(その11)
30 DW_TAG_base_type 0x24 言語に組み込まれている基本型の情報 C / C++ / etc TAG詳細(その08)
31 DW_TAG_catch_block 0x25 オブジェクト指向言語におけるcatch句の情報 C++ / JAVA / etc TAG詳細(その03)
32 DW_TAG_const_type 0x26 ”const”修飾子の情報 C / C++ TAG詳細(その08)
33 DW_TAG_constant 0x27 ソース上の「定数」 C / C++ / etc TAG詳細(その06)
34 DW_TAG_enumerator 0x28 enum型の各要素の情報です。
enum型自体は(No.4)を参照。(このTAGはNo.4の子DIEのものです)
C / C++ / etc TAG詳細(その09)
35 DW_TAG_file_type 0x29 Pascalの”File”型の情報 Pascal TAG詳細(その15)
36 DW_TAG_friend 0x2a C++の”friend”句の情報(JAVAにもある?) C++ / JAVA? TAG詳細(その11)
37 DW_TAG_namelist 0x2b Fortranのnamelist自体 Fortran(90) TAG詳細(その07)
38 DW_TAG_namelist_item 0x2c Fortranのnamelist内のアイテム Fortran(90) TAG詳細(その07)
39 DW_TAG_packed_type 0x2d Pascal/Adaでの”packed”修飾子 Pascal / Ada TAG詳細(その08)
40 DW_TAG_subprogram 0x2e 関数/サブルーチン/エントリポイント(Fortranのみ)の情報
クラス内でのメンバ関数(メソッド)
C / C++ / Fortran / etc TAG詳細(その02)
TAG詳細(その12)
41 DW_TAG_template_type_parameter 0x2f C++でのテンプレート関数、クラステンプレートに食わせる「型変数」の情報 C++ TAG詳細(その03)
TAG詳細(その12)
42 DW_TAG_template_value_parameter 0x30 C++でのクラステンプレートに食わせる「値」の情報 C++ TAG詳細(その12)
43 DW_TAG_thrown_type 0x31 オブジェクト指向言語(C++など)で例外ブン投げる時の型の情報 C++ / JAVA? TAG詳細(その03)
44 DW_TAG_try_block 0x32 オブジェクト指向言語におけるtry句の情報 C++ / JAVA / etc TAG詳細(その03)
45 DW_TAG_variant_part 0x33 構造体の可変部分の情報 ??? TAG詳細(その10)
46 DW_TAG_variable 0x34 ソース上の変数 C / C++ / etc TAG詳細(その06)
47 DW_TAG_volatile_type 0x35 ”volatile”修飾子の情報 C / C++ TAG詳細(その08)
48 DW_TAG_dwarf_procedure 0x36 他のいずれのTAGにも該当しない場合だが、
何らかの方法でDWARFでのデバッグ情報保持を行いたい場合
DWARF3以降
全言語 TAG詳細(その15)
49 DW_TAG_restrict_type 0x37 ”restrict”修飾子の情報
DWARF3以降
C / C++ TAG詳細(その08)
50 DW_TAG_interface_type 0x38 JAVAのインタフェース(クラス)の情報
DWARF3以降-
JAVA TAG詳細(その11)
51 DW_TAG_namespace 0x39 C++のnamespace宣言の情報
DWARF3以降
C++ (原文3.2.2)
52 DW_TAG_imported_module 0x3a インポートしたモジュールやnamespaceに含まれる宣言をまるごと別名でアクセスする際
のデバッグ情報? ※スミマセン、いまいち良く理解できていない。。。
DWARF3以降
C++ (原文3.2.4)
53 DW_TAG_unspecified_type 0x3b C言語における”void”型などの情報
DWARF3以降
C / C++ / Ada TAG詳細(その08)
54 DW_TAG_partial_unit 0x3c オブジェクトファイルの分割した場合のそれぞれに付くヘッダ情報
※デバッグ情報削減のため、オブジェクトファイルを分割してデバッグ情報を持たせた方が有利、
とコンパイラが判断した場合のみ生成
※DW_TAG_compile_unitと排他使用される(1つの.oファイルに対しては)
DWARF3以降
(不明) TAG詳細(その01)
55 DW_TAG_imported_unit 0x3d DW_TAG_compile_unitもしくはDW_TAG_partial_unitで定義される
オブジェクトをインポートする場合のTAG
DW_AT_import属性の値(参照)に、インポートするDIEを持っている
※でも何に使うのか、不明
DWARF3以降
(不明) TAG詳細(その01)
56 DW_TAG_condition 0x3f COBOL言語の”Condition”の情報
DWARF3以降
COBOL TAG詳細(その14)
57 DW_TAG_shared_type 0x40 UPCでの”shared”修飾型?
DWARF3以降
UPC? TAG詳細(その08)
58 DW_TAG_lo_user 0x4080 コンパイラ、OSベンダ任意定義(利用可能範囲開始値) 全言語 TAG詳細(その15)
59 DW_TAG_hi_user 0xffff コンパイラ、OSベンダ任意定義(利用可能範囲終了値) 全言語 TAG詳細(その15)


目次に戻る:DWARFファイルフォーマット