This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Add DWZ DWARF multifile extensions to dwarf2.{def,h}
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Jason Merrill <jason at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Cary Coutant <ccoutant at google dot com>, Tom Tromey <tromey at redhat dot com>
- Date: Fri, 8 Jun 2012 20:37:29 +0200
- Subject: [PATCH] Add DWZ DWARF multifile extensions to dwarf2.{def,h}
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
This patch adds dwz -m DWARF extensions.
See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open
for more details and
http://sourceware.org/git/?p=dwz.git;a=shortlog;h=refs/heads/multifile
for the tool that creates it. Compared to the DWARF5 proposal, this
is so far implemented as a GNU extension, using different form values.
In the GNU implementation, there is a .gnu_debugaltlink section, which
contains a zero terminated filename (should be either absolute filename,
or filename relative to the directory in which the file with
.gnu_debugaltlink section resides) followed by build-id (SHA1 checksum
of the debugging sections).
Tom Tromey wrote gdb support for these extensions at
http://sources.redhat.com/git/?p=archer.git;a=shortlog;h=refs/heads/archer-tromey-dwz-multifile
Ok for trunk?
2012-06-08 Jakub Jelinek <jakub@redhat.com>
* dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
forms.
* dwarf2.h (enum dwarf_macro_record_type): Add
DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
and DW_MACRO_GNU_transparent_include_alt.
--- include/dwarf2.def.jj 2012-05-02 20:33:43.000000000 +0200
+++ include/dwarf2.def 2012-05-10 08:23:55.912919813 +0200
@@ -205,6 +205,10 @@ DW_FORM (DW_FORM_ref_sig8, 0x20)
/* 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)
+/* Extensions for DWZ multifile.
+ See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
+DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
+DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
DW_END_FORM
DW_FIRST_AT (DW_AT_sibling, 0x01)
--- include/dwarf2.h.jj 2012-05-09 20:15:32.000000000 +0200
+++ include/dwarf2.h 2012-05-14 12:16:37.414204203 +0200
@@ -333,6 +333,9 @@ enum dwarf_macro_record_type
DW_MACRO_GNU_define_indirect = 5,
DW_MACRO_GNU_undef_indirect = 6,
DW_MACRO_GNU_transparent_include = 7,
+ DW_MACRO_GNU_define_indirect_alt = 8,
+ DW_MACRO_GNU_undef_indirect_alt = 9,
+ DW_MACRO_GNU_transparent_include_alt = 10,
DW_MACRO_GNU_lo_user = 0xe0,
DW_MACRO_GNU_hi_user = 0xff
};
Jakub