From 13a142ce0959837746e61063b6b18ac70344a474 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 23 Dec 2014 14:44:58 -0800 Subject: Add experimental DWARF-5 values for two-level line number tables. http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables 2014-12-23 Cary Coutant 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. --- include/dwarf2.def | 2 ++ include/dwarf2.h | 24 +++++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) 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 -- cgit v1.2.1