[debug] Introduce -fno-debug-types-section flag

Mark Wielaard mjw@redhat.com
Tue Mar 29 10:24:00 GMT 2011


Hi,

Some dwarf consumers (dwarves, systemtap and dwarflint) grok Dwarf V4,
but not yet the new .debug_types section. To make it easier to use these
tools with -gdwarf-4 this patch introduces a new
-fno-debug-types-section flag and guards all code that is type unit
specific with use_debug_types instead of a generic dwarf_version >= 4
flag. IMHO this makes the code also slightly more readable. And it
re-enables the usage of -feliminate-dwarf2-dups with -gdwarf-4. Although
admittedly the value of that is probably pretty low. I found it helpful
in debugging some issues with dwarf consumers and DW_FORM_ref_addr
usage.

2011-03-29  Mark Wielaard  <mjw@redhat.com>

    * common.opt (fdebug-types-section): New flag.
    * doc/invoke.texi: Document new -fno-debug-types-section flag.
    * dwarf2out.c (use_debug_types): New define.
    (struct die_struct): Mark die_id with GTY desc use_debug_types.
    (print_die): Guard output of type unit signatures using
    use_debug_types.
    (build_abbrev_table): Replace assert of dwarf_version >= 4
    with assert on use_debug_types.
    (size_of_die): Likewise.
    (unmark_dies): Likewise.
    (value_format): Decide AT_ref_external form on use_debug_types.
    (output_die): Replace dwarf_version version check guard with
    use_debug_types where appropriate.
    (modified_type_die): Likewise.
    (gen_reference_type_die): Likewise.
    (dwarf2out_start_source_file): Likewise.
    (dwarf2out_end_source_file): Likewise.
    (prune_unused_types_walk_attribs): Likewise.
    (dwarf2out_finish): Likewise.

Bootstrapped on x86_64 GNU/Linux, no regressions.

Thanks,

Mark
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Introduce-fno-debug-types-section-flag.patch
Type: text/x-patch
Size: 9170 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110329/60e923ac/attachment.bin>


More information about the Gcc-patches mailing list