From 244e0772d8332e2517bf003171ed3137c3b408b3 Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Tue, 23 Dec 2014 14:44:58 -0800 Subject: [PATCH] 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_address_from_logical. (enum dwarf_line_number_content_type): Add new DW_LNCT_ codes. --- include/dwarf2.def | 2 ++ include/dwarf2.h | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/include/dwarf2.def b/include/dwarf2.def index 5da3ae0e449..d0c29525d08 100644 --- a/include/dwarf2.def +++ b/include/dwarf2.def @@ -200,6 +200,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 791ef566f99..4fca1dce7b7 100644 --- a/include/dwarf2.h +++ b/include/dwarf2.h @@ -222,7 +222,12 @@ 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_inlined_call = 13, + DW_LNS_pop_context = 14, + DW_LNS_set_address_from_logical = 15 }; /* Line number extended opcodes. */ @@ -268,6 +273,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 -- 2.47.2