summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2014-12-23 14:44:58 -0800
committerCary Coutant <ccoutant@google.com>2015-03-31 10:51:09 -0700
commit13a142ce0959837746e61063b6b18ac70344a474 (patch)
treec51fe782504497a787d047e42001d0dc27b12497
parent711a72d3d6f8cd3c3f408e718ff19aa4bfd2144e (diff)
downloadbinutils-gdb-13a142ce0959837746e61063b6b18ac70344a474.tar.gz
Add experimental DWARF-5 values for two-level line number tables.
http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables 2014-12-23 Cary Coutant <ccoutant@google.com> include/ * dwarf2.def (DW_FORM_line_strp): New constant. * dwarf2.h (enum dwarf_line_number_ops): Add DW_LNS_inlined_call, DW_LNS_pop_context, DW_LNS_set_context, DW_LNS_set_address_from_logical. (enum dwarf_line_number_content_type): Add new DW_LNCT_ codes.
-rw-r--r--include/dwarf2.def2
-rw-r--r--include/dwarf2.h24
2 files changed, 25 insertions, 1 deletions
diff --git a/include/dwarf2.def b/include/dwarf2.def
index e61cfbeb407..4f1a7486d87 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -202,6 +202,8 @@ DW_FORM (DW_FORM_sec_offset, 0x17)
DW_FORM (DW_FORM_exprloc, 0x18)
DW_FORM (DW_FORM_flag_present, 0x19)
DW_FORM (DW_FORM_ref_sig8, 0x20)
+/* DWARF 5. */
+DW_FORM (DW_FORM_line_strp, 0x1f)
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
diff --git a/include/dwarf2.h b/include/dwarf2.h
index 4ada87162fa..6c08d3343d0 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -222,7 +222,13 @@ enum dwarf_line_number_ops
/* DWARF 3. */
DW_LNS_set_prologue_end = 10,
DW_LNS_set_epilogue_begin = 11,
- DW_LNS_set_isa = 12
+ DW_LNS_set_isa = 12,
+ /* Experimental DWARF 5 extensions.
+ See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables. */
+ DW_LNS_set_address_from_logical = 13, /* Actuals table only. */
+ DW_LNS_set_subprogram = 13, /* Logicals table only. */
+ DW_LNS_inlined_call = 14, /* Logicals table only. */
+ DW_LNS_pop_context = 15 /* Logicals table only. */
};
/* Line number extended opcodes. */
@@ -268,6 +274,22 @@ enum dwarf_location_list_entry_type
DW_LLE_GNU_start_length_entry = 3
};
+/* Type codes for line number program content descriptors (DWARF 5). */
+
+enum dwarf_line_number_content_type
+ {
+ DW_LNCT_path = 1,
+ DW_LNCT_directory_index = 2,
+ DW_LNCT_timestamp = 3,
+ DW_LNCT_size = 4,
+ DW_LNCT_MD5 = 5,
+ /* Experimental DWARF 5 extensions.
+ See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables. */
+ DW_LNCT_subprogram_name = 6,
+ DW_LNCT_decl_file = 7,
+ DW_LNCT_decl_line = 8
+ };
+
#define DW_CIE_ID 0xffffffff
#define DW64_CIE_ID 0xffffffffffffffffULL
#define DW_CIE_VERSION 1