diff options
author | Tom de Vries <tdevries@suse.de> | 2019-06-10 09:28:30 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2019-06-10 09:28:30 +0200 |
commit | 81873cc81effbd657efe5f525d369e430ce77d7a (patch) | |
tree | 3e304c67f2d93ae9475427cad6d1fd9115807e20 | |
parent | a72f8c4ce397a0bbe98281d4151982330ad16f15 (diff) | |
download | binutils-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/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 4 |
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); |