ということで、DW_TAG_xxxxの詳細です。
No. | Attribute名 | 意味/使われ方 |
1 | 1) DW_AT_low_pc & DW_AT_high_pc 2) DW_AT_ranges 3) DW_AT_low_pc & DW_AT_ranges | マシンコードのアドレス範囲を示すです。以下3パターンあり 1) 連続したコードの範囲 2) 不連続だけど.debug_rangesで示されるコードの範囲 3) DW_AT_low_pcで示されたベースアドレス+DW_AT_rangesで表示されたベースアドレス上の範囲 |
2 | DW_AT_name | NULL文字終端のソースファイル名 |
3 | DW_AT_language | ソースの使用言語のコード(※取り得る値は[ Attribute名(DW_AT_yyyy)一覧と値、意味]を参照) |
4 | DW_AT_stmt_list | このCUに該当するヘッダ部分への.debug_lineセクションの先頭からのオフセット ※ソースファイル上の行数とアセンブラの行数を紐付ける情報へのリンク |
5 | DW_AT_macro_info | このCUで定義されているマクロ情報が格納されている、.debug_macinfo内の該当箇所(先頭)へのリンク |
6 | DW_AT_comp_dir | このCUをコンパイルした際のWork Dir.名 (UNIXの場合は"hostname:pathname"の形式で格納され、hostnameが取得不可の場合は":pathname"で格納されるので注意) |
7 | DW_AT_producer | コンパイラの任意文字列です。コンパイラの気分次第で歌ってもいーそうですが、 一応コンパイラを特定できるようにしてほしいことと、他のコンパイラと混同する文字はやめてよねぇって書いてます |
8 | DW_AT_identifier_case | ソースで使われている変数名/関数名などの名称の字面の取扱方です。 DW_ID_case_sensitive(0x00) は、ソース上で使われている名称の大文字/小文字をそのまま区別するということです。つまり、ソース上の名称をそのまま検索可です DW_ID_up_case(0x01)は、ソース上の名称をコンパイラが(勝手に)大文字に置き換えてます、ってこと。よって、デバッガが検索時は全部大文字変換してから検索せよってお達しです。 DW_ID_down_case(0x02)は逆で、全部小文字ってこと。 DW_ID_case_insensitive(0x03)は、名称自体の大文字/小文字変換はやっていず、通常ソース上の表記のまま検索できるけど、中にはコンパイラの変換によって検索できない地雷があるよ、ってことです。 |
9 | DW_AT_base_types | カレントのCUで扱う基本型(intなど)の定義を、他のCUで行っているDIEを参照する形とする場合、その他のCUへの参照が格納されますです。 これ、ユーザが基本型を上書きしたいようなケースで使えるよ、ってありますが。。。んなケースあんまないよね通常。 |
10 | DW_AT_use_UTF8 | このCU内で用いる全ての文字列のエンコードがUTF-8かどうかのフラグでごわす。 |
* DW_AT_import属性を持っていて、こいつの値の中にはimportしているCUのDW_TAG_compile_unitかDW_TAG_partial_unitへのリンクが入っている。
[PageInfo]
LastUpdate: 2013-09-01 22:56:26, ModifiedBy: koinec
[License]
FreeBSD Documentation License
[Permissions]
view:all, edit:members, delete/config:members