Allow passing a block to lookup_global_symbol_from_objfile
This has no behavior change in itself, but allows a future patch to add a function to the Python API to look up symbols in the static block. gdb/ChangeLog: 2019-07-24 Christian Biesinger <cbiesinger@google.com> * compile/compile-object-load.c (compile_object_load): Pass GLOBAL_SCOPE. * solib-spu.c (spu_lookup_lib_symbol): Pass GLOBAL_SCOPE. * solib-svr4.c (elf_lookup_lib_symbol): Pass GLOBAL_SCOPE. * symtab.c (lookup_global_symbol_from_objfile): Add a scope parameter. * symtab.h (lookup_global_symbol_from_objfile): Likewise.
This commit is contained in:
parent
75b493d0f9
commit
442853af24
6 changed files with 23 additions and 5 deletions
|
@ -1,3 +1,12 @@
|
|||
2019-07-22 Christian Biesinger <cbiesinger@google.com>
|
||||
|
||||
* compile/compile-object-load.c (compile_object_load): Pass GLOBAL_SCOPE.
|
||||
* solib-spu.c (spu_lookup_lib_symbol): Pass GLOBAL_SCOPE.
|
||||
* solib-svr4.c (elf_lookup_lib_symbol): Pass GLOBAL_SCOPE.
|
||||
* symtab.c (lookup_global_symbol_from_objfile): Add a scope parameter.
|
||||
* symtab.h (lookup_global_symbol_from_objfile): Likewise.
|
||||
|
||||
|
||||
2019-07-24 Yoshinori Sato <ysato@users.sourceforge.jp>
|
||||
|
||||
* h8300-tdep.c (h8300_register_name_common): New.
|
||||
|
|
|
@ -639,6 +639,7 @@ compile_object_load (const compile_file_names &file_names,
|
|||
objfile = objfile_holder.get ();
|
||||
|
||||
func_sym = lookup_global_symbol_from_objfile (objfile,
|
||||
GLOBAL_BLOCK,
|
||||
GCC_FE_WRAPPER_FUNCTION,
|
||||
VAR_DOMAIN).symbol;
|
||||
if (func_sym == NULL)
|
||||
|
|
|
@ -392,7 +392,8 @@ spu_lookup_lib_symbol (struct objfile *objfile,
|
|||
const domain_enum domain)
|
||||
{
|
||||
if (bfd_get_arch (objfile->obfd) == bfd_arch_spu)
|
||||
return lookup_global_symbol_from_objfile (objfile, name, domain);
|
||||
return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
|
||||
domain);
|
||||
|
||||
if (svr4_so_ops.lookup_lib_global_symbol != NULL)
|
||||
return svr4_so_ops.lookup_lib_global_symbol (objfile, name, domain);
|
||||
|
|
|
@ -3226,7 +3226,8 @@ elf_lookup_lib_symbol (struct objfile *objfile,
|
|||
if (abfd == NULL || scan_dyntag (DT_SYMBOLIC, abfd, NULL, NULL) != 1)
|
||||
return {};
|
||||
|
||||
return lookup_global_symbol_from_objfile (objfile, name, domain);
|
||||
return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name,
|
||||
domain);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -2224,15 +2224,18 @@ lookup_symbol_in_block (const char *name, symbol_name_match_type match_type,
|
|||
|
||||
struct block_symbol
|
||||
lookup_global_symbol_from_objfile (struct objfile *main_objfile,
|
||||
enum block_enum block_index,
|
||||
const char *name,
|
||||
const domain_enum domain)
|
||||
{
|
||||
gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK);
|
||||
|
||||
for (objfile *objfile : main_objfile->separate_debug_objfiles ())
|
||||
{
|
||||
struct block_symbol result
|
||||
= lookup_symbol_in_objfile (objfile, GLOBAL_BLOCK, name, domain);
|
||||
= lookup_symbol_in_objfile (objfile, block_index, name, domain);
|
||||
|
||||
if (result.symbol != NULL)
|
||||
if (result.symbol != nullptr)
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -2045,13 +2045,16 @@ extern bool treg_matches_sym_type_name (const compiled_regex &treg,
|
|||
extern const char *main_name ();
|
||||
extern enum language main_language (void);
|
||||
|
||||
/* Lookup symbol NAME from DOMAIN in MAIN_OBJFILE's global blocks.
|
||||
/* Lookup symbol NAME from DOMAIN in MAIN_OBJFILE's global or static blocks,
|
||||
as specified by BLOCK_INDEX.
|
||||
This searches MAIN_OBJFILE as well as any associated separate debug info
|
||||
objfiles of MAIN_OBJFILE.
|
||||
BLOCK_INDEX can be GLOBAL_BLOCK or STATIC_BLOCK.
|
||||
Upon success fixes up the symbol's section if necessary. */
|
||||
|
||||
extern struct block_symbol
|
||||
lookup_global_symbol_from_objfile (struct objfile *main_objfile,
|
||||
enum block_enum block_index,
|
||||
const char *name,
|
||||
const domain_enum domain);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue