From 81873cc81effbd657efe5f525d369e430ce77d7a Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Mon, 10 Jun 2019 09:28:30 +0200 Subject: [PATCH] [gdb/symtab] Support DW_AT_main_subprogram with -readnow. DW_AT_main_subprogram is supported in normal mode in read_partial_die, but not in -readnow mode. Fix this by adding support for DW_AT_main_subprogram in read_func_scope. Tested on x86_64-linux with native and RFC target board readnow ( https://sourceware.org/ml/gdb-patches/2019-05/msg00073.html ). gdb/ChangeLog: 2019-06-10 Tom de Vries PR symtab/16264 PR symtab/24517 * dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram. --- gdb/ChangeLog | 6 ++++++ gdb/dwarf2read.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index efe461884e..3a40ecc169 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2019-06-10 Tom de Vries + + PR symtab/16264 + PR symtab/24517 + * dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram. + 2019-06-06 Руслан Ижбулатов * source.c (find_and_open_source): Also rewrite relative file diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index e1d6bb2d58..9d9bc9948a 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -13746,6 +13746,10 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) newobj->name = new_symbol (die, read_type_die (die, cu), cu, (struct symbol *) templ_func); + if (dwarf2_flag_true_p (die, DW_AT_main_subprogram, cu)) + set_objfile_main_name (objfile, SYMBOL_LINKAGE_NAME (newobj->name), + cu->language); + /* If there is a location expression for DW_AT_frame_base, record it. */ attr = dwarf2_attr (die, DW_AT_frame_base, cu);