[debug] Add -gdescribe-dies

Programming / Compilers / GCC - vries [138bc75d-0d04-0410-961f-82ee72b054a4] - 12 September 2018 07:27 EDT

This patch adds option -gdescribe-dies. It sets the DW_AT_description attribute of dies that do not get a DW_AT_name attribute, to make it easier to figure out what the die is describing.

The option exports the names of artificial variables:

DIE 0: DW_TAG_variable (0x7fa934dd54b0) + DW_AT_description: "D.1922" DW_AT_type: die -> 0 (0x7fa934dd0d70) DW_AT_artificial: 1


which can be traced back to gimple dumps:

char a[0:D.1922] [value-expr: *a.0];


Furthermore, it adds names to external references:

DIE 0: DW_TAG_subprogram (0x7fa88b9650f0) +DW_AT_description: "main" DW_AT_abstract_origin: die -> label: vla_1.c.6719312a + 29 (0x7fa88b965140)

and likewise to DW_TAG_call_site_parameter DIEs.

Bootstrapped and reg-tested on x86_64.

2018-09-12 Tom de Vries

- common.opt (gdescribe-dies): Add option.
- dwarf2out.c (add_name_and_src_coords_attributes): Add description attribute for artifical and nameless decls. (dwarf2out_register_external_die): Add description attribute to external reference die. (add_desc_attribute): New functions. (gen_subprogram_die): Add description attribute to DW_TAG_call_site_parameter.
- tree-pretty-print.c (print_generic_expr_to_str): New function.
- tree-pretty-print.h (print_generic_expr_to_str): Declare.
- doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and
-gno-describe-dies. (@item -gdescribe-dies): Add.

f1e7f337be6 [debug] Add -gdescribe-dies
gcc/ChangeLog | 16 ++++++++++++++
gcc/common.opt | 4 ++++
gcc/doc/invoke.texi | 8 ++++++-
gcc/dwarf2out.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
gcc/tree-pretty-print.c | 10 +++++++++
gcc/tree-pretty-print.h | 1 +
6 files changed, 95 insertions(+), 1 deletion(-)

Upstream: gcc.gnu.org


  • Share