aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2019-06-10 09:28:30 +0200
committerTom de Vries <tdevries@suse.de>2019-06-10 09:28:30 +0200
commit81873cc81effbd657efe5f525d369e430ce77d7a (patch)
tree3e304c67f2d93ae9475427cad6d1fd9115807e20
parenta72f8c4ce397a0bbe98281d4151982330ad16f15 (diff)
downloadbinutils-81873cc81effbd657efe5f525d369e430ce77d7a.zip
binutils-81873cc81effbd657efe5f525d369e430ce77d7a.tar.gz
binutils-81873cc81effbd657efe5f525d369e430ce77d7a.tar.bz2
[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 <tdevries@suse.de> PR symtab/16264 PR symtab/24517 * dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/dwarf2read.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index efe4618..3a40ecc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2019-06-10 Tom de Vries <tdevries@suse.de>
+
+ PR symtab/16264
+ PR symtab/24517
+ * dwarf2read.c (read_func_scope): Handle DW_AT_main_subprogram.
+
2019-06-06 Руслан Ижбулатов <lrn1986@gmail.com>
* source.c (find_and_open_source): Also rewrite relative file
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index e1d6bb2..9d9bc99 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);