Replace symbol_symtab with symbol::symtab
This turns symbol_symtab into a method on symbol. It also replaces symbol_set_symtab with a method.
This commit is contained in:
parent
bcd6845e2b
commit
4206d69e96
20 changed files with 76 additions and 76 deletions
|
@ -3681,7 +3681,7 @@ See set/show multiple-symbol."));
|
||||||
struct symtab *symtab = NULL;
|
struct symtab *symtab = NULL;
|
||||||
|
|
||||||
if (syms[i].symbol->is_objfile_owned ())
|
if (syms[i].symbol->is_objfile_owned ())
|
||||||
symtab = symbol_symtab (syms[i].symbol);
|
symtab = syms[i].symbol->symtab ();
|
||||||
|
|
||||||
if (syms[i].symbol->line () != 0 && symtab != NULL)
|
if (syms[i].symbol->line () != 0 && symtab != NULL)
|
||||||
{
|
{
|
||||||
|
@ -4712,9 +4712,9 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym,
|
||||||
the symbol is local or not, we check the block where we found it
|
the symbol is local or not, we check the block where we found it
|
||||||
against the global and static blocks of its associated symtab. */
|
against the global and static blocks of its associated symtab. */
|
||||||
if (sym
|
if (sym
|
||||||
&& BLOCKVECTOR_BLOCK (symbol_symtab (sym)->compunit ()->blockvector (),
|
&& BLOCKVECTOR_BLOCK (sym->symtab ()->compunit ()->blockvector (),
|
||||||
GLOBAL_BLOCK) != block
|
GLOBAL_BLOCK) != block
|
||||||
&& BLOCKVECTOR_BLOCK (symbol_symtab (sym)->compunit ()->blockvector (),
|
&& BLOCKVECTOR_BLOCK (sym->symtab ()->compunit ()->blockvector (),
|
||||||
STATIC_BLOCK) != block)
|
STATIC_BLOCK) != block)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ ftrace_print_filename (const struct btrace_function *bfun)
|
||||||
sym = bfun->sym;
|
sym = bfun->sym;
|
||||||
|
|
||||||
if (sym != NULL)
|
if (sym != NULL)
|
||||||
filename = symtab_to_filename_for_display (symbol_symtab (sym));
|
filename = symtab_to_filename_for_display (sym->symtab ());
|
||||||
else
|
else
|
||||||
filename = "<unknown>";
|
filename = "<unknown>";
|
||||||
|
|
||||||
|
@ -210,8 +210,8 @@ ftrace_function_switched (const struct btrace_function *bfun,
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Check the location of those functions, as well. */
|
/* Check the location of those functions, as well. */
|
||||||
bfname = symtab_to_fullname (symbol_symtab (sym));
|
bfname = symtab_to_fullname (sym->symtab ());
|
||||||
fname = symtab_to_fullname (symbol_symtab (fun));
|
fname = symtab_to_fullname (fun->symtab ());
|
||||||
if (filename_cmp (fname, bfname) != 0)
|
if (filename_cmp (fname, bfname) != 0)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1006,15 +1006,15 @@ buildsym_compunit::end_compunit_symtab_with_blockvector
|
||||||
/* Inlined functions may have symbols not in the global or
|
/* Inlined functions may have symbols not in the global or
|
||||||
static symbol lists. */
|
static symbol lists. */
|
||||||
if (BLOCK_FUNCTION (block) != NULL)
|
if (BLOCK_FUNCTION (block) != NULL)
|
||||||
if (symbol_symtab (BLOCK_FUNCTION (block)) == NULL)
|
if (BLOCK_FUNCTION (block)->symtab () == NULL)
|
||||||
symbol_set_symtab (BLOCK_FUNCTION (block), symtab);
|
BLOCK_FUNCTION (block)->set_symtab (symtab);
|
||||||
|
|
||||||
/* Note that we only want to fix up symbols from the local
|
/* Note that we only want to fix up symbols from the local
|
||||||
blocks, not blocks coming from included symtabs. That is why
|
blocks, not blocks coming from included symtabs. That is why
|
||||||
we use ALL_DICT_SYMBOLS here and not ALL_BLOCK_SYMBOLS. */
|
we use ALL_DICT_SYMBOLS here and not ALL_BLOCK_SYMBOLS. */
|
||||||
ALL_DICT_SYMBOLS (BLOCK_MULTIDICT (block), miter, sym)
|
ALL_DICT_SYMBOLS (BLOCK_MULTIDICT (block), miter, sym)
|
||||||
if (symbol_symtab (sym) == NULL)
|
if (sym->symtab () == NULL)
|
||||||
symbol_set_symtab (sym, symtab);
|
sym->set_symtab (symtab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1114,8 +1114,8 @@ set_missing_symtab (struct pending *pending_list,
|
||||||
{
|
{
|
||||||
for (i = 0; i < pending->nsyms; ++i)
|
for (i = 0; i < pending->nsyms; ++i)
|
||||||
{
|
{
|
||||||
if (symbol_symtab (pending->symbol[i]) == NULL)
|
if (pending->symbol[i]->symtab () == NULL)
|
||||||
symbol_set_symtab (pending->symbol[i], cu->primary_filetab ());
|
pending->symbol[i]->set_symtab (cu->primary_filetab ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,7 +57,7 @@ convert_one_symbol (compile_c_instance *context,
|
||||||
int is_local)
|
int is_local)
|
||||||
{
|
{
|
||||||
gcc_type sym_type;
|
gcc_type sym_type;
|
||||||
const char *filename = symbol_symtab (sym.symbol)->filename;
|
const char *filename = sym.symbol->symtab ()->filename;
|
||||||
unsigned short line = sym.symbol->line ();
|
unsigned short line = sym.symbol->line ();
|
||||||
|
|
||||||
context->error_symbol_once (sym.symbol);
|
context->error_symbol_once (sym.symbol);
|
||||||
|
|
|
@ -48,7 +48,7 @@ convert_one_symbol (compile_cplus_instance *instance,
|
||||||
{
|
{
|
||||||
/* Squash compiler warning. */
|
/* Squash compiler warning. */
|
||||||
gcc_type sym_type = 0;
|
gcc_type sym_type = 0;
|
||||||
const char *filename = symbol_symtab (sym.symbol)->filename;
|
const char *filename = sym.symbol->symtab ()->filename;
|
||||||
unsigned short line = sym.symbol->line ();
|
unsigned short line = sym.symbol->line ();
|
||||||
|
|
||||||
instance->error_symbol_once (sym.symbol);
|
instance->error_symbol_once (sym.symbol);
|
||||||
|
|
|
@ -625,7 +625,7 @@ compile_cplus_convert_struct_or_union_members
|
||||||
we can do but ignore this member. */
|
we can do but ignore this member. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const char *filename = symbol_symtab (sym.symbol)->filename;
|
const char *filename = sym.symbol->symtab ()->filename;
|
||||||
unsigned int line = sym.symbol->line ();
|
unsigned int line = sym.symbol->line ();
|
||||||
|
|
||||||
physaddr = sym.symbol->value_address ();
|
physaddr = sym.symbol->value_address ();
|
||||||
|
@ -764,7 +764,7 @@ compile_cplus_convert_struct_or_union_methods (compile_cplus_instance *instance,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *filename = symbol_symtab (sym.symbol)->filename;
|
const char *filename = sym.symbol->symtab ()->filename;
|
||||||
unsigned int line = sym.symbol->line ();
|
unsigned int line = sym.symbol->line ();
|
||||||
CORE_ADDR address = BLOCK_START (sym.symbol->value_block ());
|
CORE_ADDR address = BLOCK_START (sym.symbol->value_block ());
|
||||||
const char *kind;
|
const char *kind;
|
||||||
|
|
|
@ -421,7 +421,7 @@ get_out_value_type (struct symbol *func_sym, struct objfile *objfile,
|
||||||
lookup_name_info func_matcher (GCC_FE_WRAPPER_FUNCTION,
|
lookup_name_info func_matcher (GCC_FE_WRAPPER_FUNCTION,
|
||||||
symbol_name_match_type::SEARCH_NAME);
|
symbol_name_match_type::SEARCH_NAME);
|
||||||
|
|
||||||
bv = symbol_symtab (func_sym)->compunit ()->blockvector ();
|
bv = func_sym->symtab ()->compunit ()->blockvector ();
|
||||||
nblocks = BLOCKVECTOR_NBLOCKS (bv);
|
nblocks = BLOCKVECTOR_NBLOCKS (bv);
|
||||||
|
|
||||||
gdb_ptr_type_sym = NULL;
|
gdb_ptr_type_sym = NULL;
|
||||||
|
|
|
@ -7810,9 +7810,9 @@ fixup_go_packaging (struct dwarf2_cu *cu)
|
||||||
struct objfile *objfile = cu->per_objfile->objfile;
|
struct objfile *objfile = cu->per_objfile->objfile;
|
||||||
if (strcmp (package_name.get (), this_package_name.get ()) != 0)
|
if (strcmp (package_name.get (), this_package_name.get ()) != 0)
|
||||||
complaint (_("Symtab %s has objects from two different Go packages: %s and %s"),
|
complaint (_("Symtab %s has objects from two different Go packages: %s and %s"),
|
||||||
(symbol_symtab (sym) != NULL
|
(sym->symtab () != NULL
|
||||||
? symtab_to_filename_for_display
|
? symtab_to_filename_for_display
|
||||||
(symbol_symtab (sym))
|
(sym->symtab ())
|
||||||
: objfile_name (objfile)),
|
: objfile_name (objfile)),
|
||||||
this_package_name.get (), package_name.get ());
|
this_package_name.get (), package_name.get ());
|
||||||
}
|
}
|
||||||
|
@ -12081,7 +12081,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||||
of gdb assume that symbols do, and this is reasonably
|
of gdb assume that symbols do, and this is reasonably
|
||||||
true. */
|
true. */
|
||||||
for (symbol *sym : template_args)
|
for (symbol *sym : template_args)
|
||||||
symbol_set_symtab (sym, symbol_symtab (templ_func));
|
sym->set_symtab (templ_func->symtab ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* In C++, we can have functions nested inside functions (e.g., when
|
/* In C++, we can have functions nested inside functions (e.g., when
|
||||||
|
@ -14977,7 +14977,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||||
{
|
{
|
||||||
struct symtab *symtab;
|
struct symtab *symtab;
|
||||||
if (sym != nullptr)
|
if (sym != nullptr)
|
||||||
symtab = symbol_symtab (sym);
|
symtab = sym->symtab ();
|
||||||
else if (cu->line_header != nullptr)
|
else if (cu->line_header != nullptr)
|
||||||
{
|
{
|
||||||
/* Any related symtab will do. */
|
/* Any related symtab will do. */
|
||||||
|
@ -15001,7 +15001,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
|
||||||
other parts of gdb assume that symbols do, and this is
|
other parts of gdb assume that symbols do, and this is
|
||||||
reasonably true. */
|
reasonably true. */
|
||||||
for (int i = 0; i < TYPE_N_TEMPLATE_ARGUMENTS (type); ++i)
|
for (int i = 0; i < TYPE_N_TEMPLATE_ARGUMENTS (type); ++i)
|
||||||
symbol_set_symtab (TYPE_TEMPLATE_ARGUMENT (type, i), symtab);
|
TYPE_TEMPLATE_ARGUMENT (type, i)->set_symtab (symtab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20667,7 +20667,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
|
||||||
if (fe == NULL)
|
if (fe == NULL)
|
||||||
complaint (_("file index out of range"));
|
complaint (_("file index out of range"));
|
||||||
else
|
else
|
||||||
symbol_set_symtab (sym, fe->symtab);
|
sym->set_symtab (fe->symtab);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (die->tag)
|
switch (die->tag)
|
||||||
|
|
|
@ -2701,7 +2701,7 @@ find_frame_sal (frame_info *frame)
|
||||||
symtab_and_line sal;
|
symtab_and_line sal;
|
||||||
if (sym->line () != 0)
|
if (sym->line () != 0)
|
||||||
{
|
{
|
||||||
sal.symtab = symbol_symtab (sym);
|
sal.symtab = sym->symtab ();
|
||||||
sal.line = sym->line ();
|
sal.line = sym->line ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -364,7 +364,7 @@ gdbscm_symbol_symtab (SCM self)
|
||||||
|
|
||||||
if (!symbol->is_objfile_owned ())
|
if (!symbol->is_objfile_owned ())
|
||||||
return SCM_BOOL_F;
|
return SCM_BOOL_F;
|
||||||
return stscm_scm_from_symtab (symbol_symtab (symbol));
|
return stscm_scm_from_symtab (symbol->symtab ());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (symbol-name <gdb:symbol>) -> string */
|
/* (symbol-name <gdb:symbol>) -> string */
|
||||||
|
|
|
@ -589,7 +589,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
|
||||||
/* The name. */
|
/* The name. */
|
||||||
block_name->set_domain (VAR_DOMAIN);
|
block_name->set_domain (VAR_DOMAIN);
|
||||||
block_name->set_aclass_index (LOC_BLOCK);
|
block_name->set_aclass_index (LOC_BLOCK);
|
||||||
symbol_set_symtab (block_name, filetab);
|
block_name->set_symtab (filetab);
|
||||||
block_name->set_type (lookup_function_type (block_type));
|
block_name->set_type (lookup_function_type (block_type));
|
||||||
block_name->set_value_block (new_block);
|
block_name->set_value_block (new_block);
|
||||||
|
|
||||||
|
|
|
@ -2188,7 +2188,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
|
||||||
for (const auto &sym : ls->labels.label_symbols)
|
for (const auto &sym : ls->labels.label_symbols)
|
||||||
{
|
{
|
||||||
struct program_space *pspace
|
struct program_space *pspace
|
||||||
= symbol_symtab (sym.symbol)->compunit ()->objfile ()->pspace;
|
= sym.symbol->symtab ()->compunit ()->objfile ()->pspace;
|
||||||
|
|
||||||
if (symbol_to_sal (&sal, state->funfirstline, sym.symbol)
|
if (symbol_to_sal (&sal, state->funfirstline, sym.symbol)
|
||||||
&& maybe_add_address (state->addr_set, pspace, sal.pc))
|
&& maybe_add_address (state->addr_set, pspace, sal.pc))
|
||||||
|
@ -2210,7 +2210,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
|
||||||
for (const auto &sym : ls->function_symbols)
|
for (const auto &sym : ls->function_symbols)
|
||||||
{
|
{
|
||||||
program_space *pspace
|
program_space *pspace
|
||||||
= symbol_symtab (sym.symbol)->compunit ()->objfile ()->pspace;
|
= sym.symbol->symtab ()->compunit ()->objfile ()->pspace;
|
||||||
set_current_program_space (pspace);
|
set_current_program_space (pspace);
|
||||||
|
|
||||||
/* Don't skip to the first line of the function if we
|
/* Don't skip to the first line of the function if we
|
||||||
|
@ -3483,8 +3483,8 @@ compare_symbols (const block_symbol &a, const block_symbol &b)
|
||||||
{
|
{
|
||||||
uintptr_t uia, uib;
|
uintptr_t uia, uib;
|
||||||
|
|
||||||
uia = (uintptr_t) symbol_symtab (a.symbol)->compunit ()->objfile ()->pspace;
|
uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace;
|
||||||
uib = (uintptr_t) symbol_symtab (b.symbol)->compunit ()->objfile ()->pspace;
|
uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace;
|
||||||
|
|
||||||
if (uia < uib)
|
if (uia < uib)
|
||||||
return true;
|
return true;
|
||||||
|
@ -3608,7 +3608,7 @@ find_method (struct linespec_state *self,
|
||||||
|
|
||||||
/* Program spaces that are executing startup should have
|
/* Program spaces that are executing startup should have
|
||||||
been filtered out earlier. */
|
been filtered out earlier. */
|
||||||
pspace = symbol_symtab (sym)->compunit ()->objfile ()->pspace;
|
pspace = sym->symtab ()->compunit ()->objfile ()->pspace;
|
||||||
gdb_assert (!pspace->executing_startup);
|
gdb_assert (!pspace->executing_startup);
|
||||||
set_current_program_space (pspace);
|
set_current_program_space (pspace);
|
||||||
t = check_typedef (sym->type ());
|
t = check_typedef (sym->type ());
|
||||||
|
@ -3619,7 +3619,7 @@ find_method (struct linespec_state *self,
|
||||||
sure not to miss the last batch. */
|
sure not to miss the last batch. */
|
||||||
if (ix == sym_classes->size () - 1
|
if (ix == sym_classes->size () - 1
|
||||||
|| (pspace
|
|| (pspace
|
||||||
!= (symbol_symtab (sym_classes->at (ix + 1).symbol)
|
!= (sym_classes->at (ix + 1).symbol->symtab ()
|
||||||
->compunit ()->objfile ()->pspace)))
|
->compunit ()->objfile ()->pspace)))
|
||||||
{
|
{
|
||||||
/* If we did not find a direct implementation anywhere in
|
/* If we did not find a direct implementation anywhere in
|
||||||
|
@ -3985,7 +3985,7 @@ find_label_symbols (struct linespec_state *self,
|
||||||
{
|
{
|
||||||
fn_sym = elt.symbol;
|
fn_sym = elt.symbol;
|
||||||
set_current_program_space
|
set_current_program_space
|
||||||
(symbol_symtab (fn_sym)->compunit ()->objfile ()->pspace);
|
(fn_sym->symtab ()->compunit ()->objfile ()->pspace);
|
||||||
block = fn_sym->value_block ();
|
block = fn_sym->value_block ();
|
||||||
|
|
||||||
find_label_symbols_in_block (block, name, fn_sym, completion_mode,
|
find_label_symbols_in_block (block, name, fn_sym, completion_mode,
|
||||||
|
@ -4380,7 +4380,7 @@ symbol_to_sal (struct symtab_and_line *result,
|
||||||
if (sym->aclass () == LOC_LABEL && sym->value_address () != 0)
|
if (sym->aclass () == LOC_LABEL && sym->value_address () != 0)
|
||||||
{
|
{
|
||||||
*result = {};
|
*result = {};
|
||||||
result->symtab = symbol_symtab (sym);
|
result->symtab = sym->symtab ();
|
||||||
result->symbol = sym;
|
result->symbol = sym;
|
||||||
result->line = sym->line ();
|
result->line = sym->line ();
|
||||||
result->pc = sym->value_address ();
|
result->pc = sym->value_address ();
|
||||||
|
@ -4396,7 +4396,7 @@ symbol_to_sal (struct symtab_and_line *result,
|
||||||
{
|
{
|
||||||
/* We know its line number. */
|
/* We know its line number. */
|
||||||
*result = {};
|
*result = {};
|
||||||
result->symtab = symbol_symtab (sym);
|
result->symtab = sym->symtab ();
|
||||||
result->symbol = sym;
|
result->symbol = sym;
|
||||||
result->line = sym->line ();
|
result->line = sym->line ();
|
||||||
result->pc = sym->value_address ();
|
result->pc = sym->value_address ();
|
||||||
|
|
|
@ -4486,7 +4486,7 @@ mylookup_symbol (const char *name, const struct block *block,
|
||||||
static void
|
static void
|
||||||
add_symbol (struct symbol *s, struct symtab *symtab, struct block *b)
|
add_symbol (struct symbol *s, struct symtab *symtab, struct block *b)
|
||||||
{
|
{
|
||||||
symbol_set_symtab (s, symtab);
|
s->set_symtab (symtab);
|
||||||
mdict_add_symbol (BLOCK_MULTIDICT (b), s);
|
mdict_add_symbol (BLOCK_MULTIDICT (b), s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,7 +132,7 @@ mi_symbol_info (enum search_domain kind, const char *name_regexp,
|
||||||
/* As long as we have debug symbols... */
|
/* As long as we have debug symbols... */
|
||||||
while (i < symbols.size () && symbols[i].msymbol.minsym == nullptr)
|
while (i < symbols.size () && symbols[i].msymbol.minsym == nullptr)
|
||||||
{
|
{
|
||||||
symtab *symtab = symbol_symtab (symbols[i].symbol);
|
symtab *symtab = symbols[i].symbol->symtab ();
|
||||||
ui_out_emit_tuple symtab_tuple_emitter (uiout, nullptr);
|
ui_out_emit_tuple symtab_tuple_emitter (uiout, nullptr);
|
||||||
|
|
||||||
uiout->field_string ("filename",
|
uiout->field_string ("filename",
|
||||||
|
@ -144,7 +144,7 @@ mi_symbol_info (enum search_domain kind, const char *name_regexp,
|
||||||
/* As long as we have debug symbols from this symtab... */
|
/* As long as we have debug symbols from this symtab... */
|
||||||
for (; (i < symbols.size ()
|
for (; (i < symbols.size ()
|
||||||
&& symbols[i].msymbol.minsym == nullptr
|
&& symbols[i].msymbol.minsym == nullptr
|
||||||
&& symbol_symtab (symbols[i].symbol) == symtab);
|
&& symbols[i].symbol->symtab () == symtab);
|
||||||
++i)
|
++i)
|
||||||
{
|
{
|
||||||
symbol_search &s = symbols[i];
|
symbol_search &s = symbols[i];
|
||||||
|
@ -256,7 +256,7 @@ output_module_symbols_in_single_module_and_file
|
||||||
|
|
||||||
/* The symbol for the first result, and the symtab in which it resides. */
|
/* The symbol for the first result, and the symtab in which it resides. */
|
||||||
const symbol *first_result_symbol = iter->second.symbol;
|
const symbol *first_result_symbol = iter->second.symbol;
|
||||||
symtab *first_symbtab = symbol_symtab (first_result_symbol);
|
symtab *first_symbtab = first_result_symbol->symtab ();
|
||||||
|
|
||||||
/* Formatted output. */
|
/* Formatted output. */
|
||||||
ui_out_emit_tuple current_file (uiout, nullptr);
|
ui_out_emit_tuple current_file (uiout, nullptr);
|
||||||
|
@ -269,7 +269,7 @@ output_module_symbols_in_single_module_and_file
|
||||||
we change module, or we change symtab. */
|
we change module, or we change symtab. */
|
||||||
for (; (iter != end
|
for (; (iter != end
|
||||||
&& first_module_symbol == iter->first.symbol
|
&& first_module_symbol == iter->first.symbol
|
||||||
&& first_symbtab == symbol_symtab (iter->second.symbol));
|
&& first_symbtab == iter->second.symbol->symtab ());
|
||||||
++iter)
|
++iter)
|
||||||
output_debug_symbol (uiout, kind, iter->second.symbol,
|
output_debug_symbol (uiout, kind, iter->second.symbol,
|
||||||
iter->second.block);
|
iter->second.block);
|
||||||
|
|
|
@ -91,7 +91,7 @@ sympy_get_symtab (PyObject *self, void *closure)
|
||||||
if (!symbol->is_objfile_owned ())
|
if (!symbol->is_objfile_owned ())
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
|
|
||||||
return symtab_to_symtab_object (symbol_symtab (symbol));
|
return symtab_to_symtab_object (symbol->symtab ());
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -303,7 +303,7 @@ set_symbol (symbol_object *obj, struct symbol *symbol)
|
||||||
obj->symbol = symbol;
|
obj->symbol = symbol;
|
||||||
obj->prev = NULL;
|
obj->prev = NULL;
|
||||||
if (symbol->is_objfile_owned ()
|
if (symbol->is_objfile_owned ()
|
||||||
&& symbol_symtab (symbol) != NULL)
|
&& symbol->symtab () != NULL)
|
||||||
{
|
{
|
||||||
struct objfile *objfile = symbol->objfile ();
|
struct objfile *objfile = symbol->objfile ();
|
||||||
|
|
||||||
|
@ -349,7 +349,7 @@ sympy_dealloc (PyObject *obj)
|
||||||
sym_obj->prev->next = sym_obj->next;
|
sym_obj->prev->next = sym_obj->next;
|
||||||
else if (sym_obj->symbol != NULL
|
else if (sym_obj->symbol != NULL
|
||||||
&& sym_obj->symbol->is_objfile_owned ()
|
&& sym_obj->symbol->is_objfile_owned ()
|
||||||
&& symbol_symtab (sym_obj->symbol) != NULL)
|
&& sym_obj->symbol->symtab () != NULL)
|
||||||
{
|
{
|
||||||
set_objfile_data (sym_obj->symbol->objfile (),
|
set_objfile_data (sym_obj->symbol->objfile (),
|
||||||
sympy_objfile_data_key, sym_obj->next);
|
sympy_objfile_data_key, sym_obj->next);
|
||||||
|
|
|
@ -831,7 +831,7 @@ gdbpy_rbreak (PyObject *self, PyObject *args, PyObject *kw)
|
||||||
|
|
||||||
if (p.msymbol.minsym == NULL)
|
if (p.msymbol.minsym == NULL)
|
||||||
{
|
{
|
||||||
struct symtab *symtab = symbol_symtab (p.symbol);
|
struct symtab *symtab = p.symbol->symtab ();
|
||||||
const char *fullname = symtab_to_fullname (symtab);
|
const char *fullname = symtab_to_fullname (symtab);
|
||||||
|
|
||||||
symbol_name = fullname;
|
symbol_name = fullname;
|
||||||
|
|
|
@ -1067,7 +1067,7 @@ btrace_compute_src_line_range (const struct btrace_function *bfun,
|
||||||
if (sym == NULL)
|
if (sym == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
symtab = symbol_symtab (sym);
|
symtab = sym->symtab ();
|
||||||
|
|
||||||
for (const btrace_insn &insn : bfun->insn)
|
for (const btrace_insn &insn : bfun->insn)
|
||||||
{
|
{
|
||||||
|
@ -1100,7 +1100,7 @@ btrace_call_history_src_line (struct ui_out *uiout,
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uiout->field_string ("file",
|
uiout->field_string ("file",
|
||||||
symtab_to_filename_for_display (symbol_symtab (sym)),
|
symtab_to_filename_for_display (sym->symtab ()),
|
||||||
file_name_style.style ());
|
file_name_style.style ());
|
||||||
|
|
||||||
btrace_compute_src_line_range (bfun, &begin, &end);
|
btrace_compute_src_line_range (bfun, &begin, &end);
|
||||||
|
|
|
@ -329,7 +329,7 @@ select_source_symtab (struct symtab *s)
|
||||||
if (sal.symtab == NULL)
|
if (sal.symtab == NULL)
|
||||||
/* We couldn't find the location of `main', possibly due to missing
|
/* We couldn't find the location of `main', possibly due to missing
|
||||||
line number info, fall back to line 1 in the corresponding file. */
|
line number info, fall back to line 1 in the corresponding file. */
|
||||||
loc->set (symbol_symtab (bsym.symbol), 1);
|
loc->set (bsym.symbol->symtab (), 1);
|
||||||
else
|
else
|
||||||
loc->set (sal.symtab, std::max (sal.line - (lines_to_list - 1), 1));
|
loc->set (sal.symtab, std::max (sal.line - (lines_to_list - 1), 1));
|
||||||
return;
|
return;
|
||||||
|
|
34
gdb/symtab.c
34
gdb/symtab.c
|
@ -1803,7 +1803,7 @@ fixup_symbol_section (struct symbol *sym, struct objfile *objfile)
|
||||||
|
|
||||||
/* We either have an OBJFILE, or we can get at it from the sym's
|
/* We either have an OBJFILE, or we can get at it from the sym's
|
||||||
symtab. Anything else is a bug. */
|
symtab. Anything else is a bug. */
|
||||||
gdb_assert (objfile || symbol_symtab (sym));
|
gdb_assert (objfile || sym->symtab ());
|
||||||
|
|
||||||
if (objfile == NULL)
|
if (objfile == NULL)
|
||||||
objfile = sym->objfile ();
|
objfile = sym->objfile ();
|
||||||
|
@ -3940,7 +3940,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
|
||||||
have proven the CU (Compilation Unit) supports it. sal->SYMTAB does not
|
have proven the CU (Compilation Unit) supports it. sal->SYMTAB does not
|
||||||
have to be set by the caller so we use SYM instead. */
|
have to be set by the caller so we use SYM instead. */
|
||||||
if (sym != NULL
|
if (sym != NULL
|
||||||
&& symbol_symtab (sym)->compunit ()->locations_valid ())
|
&& sym->symtab ()->compunit ()->locations_valid ())
|
||||||
force_skip = 0;
|
force_skip = 0;
|
||||||
|
|
||||||
saved_pc = pc;
|
saved_pc = pc;
|
||||||
|
@ -4020,7 +4020,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
|
||||||
is aligned. */
|
is aligned. */
|
||||||
if (!force_skip && sym && start_sal.symtab == NULL)
|
if (!force_skip && sym && start_sal.symtab == NULL)
|
||||||
{
|
{
|
||||||
pc = skip_prologue_using_lineinfo (pc, symbol_symtab (sym));
|
pc = skip_prologue_using_lineinfo (pc, sym->symtab ());
|
||||||
/* Recalculate the line number. */
|
/* Recalculate the line number. */
|
||||||
start_sal = find_pc_sect_line (pc, section, 0);
|
start_sal = find_pc_sect_line (pc, section, 0);
|
||||||
}
|
}
|
||||||
|
@ -4052,7 +4052,7 @@ skip_prologue_sal (struct symtab_and_line *sal)
|
||||||
&& BLOCK_FUNCTION (function_block)->line () != 0)
|
&& BLOCK_FUNCTION (function_block)->line () != 0)
|
||||||
{
|
{
|
||||||
sal->line = BLOCK_FUNCTION (function_block)->line ();
|
sal->line = BLOCK_FUNCTION (function_block)->line ();
|
||||||
sal->symtab = symbol_symtab (BLOCK_FUNCTION (function_block));
|
sal->symtab = BLOCK_FUNCTION (function_block)->symtab ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4692,8 +4692,8 @@ symbol_search::compare_search_syms (const symbol_search &sym_a,
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
|
|
||||||
c = FILENAME_CMP (symbol_symtab (sym_a.symbol)->filename,
|
c = FILENAME_CMP (sym_a.symbol->symtab ()->filename,
|
||||||
symbol_symtab (sym_b.symbol)->filename);
|
sym_b.symbol->symtab ()->filename);
|
||||||
if (c != 0)
|
if (c != 0)
|
||||||
return c;
|
return c;
|
||||||
|
|
||||||
|
@ -4873,7 +4873,7 @@ global_symbol_searcher::add_matching_symbols
|
||||||
|
|
||||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||||
{
|
{
|
||||||
struct symtab *real_symtab = symbol_symtab (sym);
|
struct symtab *real_symtab = sym->symtab ();
|
||||||
|
|
||||||
QUIT;
|
QUIT;
|
||||||
|
|
||||||
|
@ -5146,7 +5146,7 @@ print_symbol_info (enum search_domain kind,
|
||||||
int block, const char *last)
|
int block, const char *last)
|
||||||
{
|
{
|
||||||
scoped_switch_to_sym_language_if_auto l (sym);
|
scoped_switch_to_sym_language_if_auto l (sym);
|
||||||
struct symtab *s = symbol_symtab (sym);
|
struct symtab *s = sym->symtab ();
|
||||||
|
|
||||||
if (last != NULL)
|
if (last != NULL)
|
||||||
{
|
{
|
||||||
|
@ -5266,7 +5266,7 @@ symtab_symbol_info (bool quiet, bool exclude_minsyms,
|
||||||
p.block,
|
p.block,
|
||||||
last_filename);
|
last_filename);
|
||||||
last_filename
|
last_filename
|
||||||
= symtab_to_filename_for_display (symbol_symtab (p.symbol));
|
= symtab_to_filename_for_display (p.symbol->symtab ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5486,7 +5486,7 @@ rbreak_command (const char *regexp, int from_tty)
|
||||||
{
|
{
|
||||||
if (p.msymbol.minsym == NULL)
|
if (p.msymbol.minsym == NULL)
|
||||||
{
|
{
|
||||||
struct symtab *symtab = symbol_symtab (p.symbol);
|
struct symtab *symtab = p.symbol->symtab ();
|
||||||
const char *fullname = symtab_to_fullname (symtab);
|
const char *fullname = symtab_to_fullname (symtab);
|
||||||
|
|
||||||
string = string_printf ("%s:'%s'", fullname,
|
string = string_printf ("%s:'%s'", fullname,
|
||||||
|
@ -6612,19 +6612,19 @@ symbol::arch () const
|
||||||
/* See symtab.h. */
|
/* See symtab.h. */
|
||||||
|
|
||||||
struct symtab *
|
struct symtab *
|
||||||
symbol_symtab (const struct symbol *symbol)
|
symbol::symtab () const
|
||||||
{
|
{
|
||||||
gdb_assert (symbol->is_objfile_owned ());
|
gdb_assert (is_objfile_owned ());
|
||||||
return symbol->owner.symtab;
|
return owner.symtab;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See symtab.h. */
|
/* See symtab.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
symbol_set_symtab (struct symbol *symbol, struct symtab *symtab)
|
symbol::set_symtab (struct symtab *symtab)
|
||||||
{
|
{
|
||||||
gdb_assert (symbol->is_objfile_owned ());
|
gdb_assert (is_objfile_owned ());
|
||||||
symbol->owner.symtab = symtab;
|
owner.symtab = symtab;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* See symtab.h. */
|
/* See symtab.h. */
|
||||||
|
@ -6870,7 +6870,7 @@ info_module_subcommand (bool quiet, const char *module_regexp,
|
||||||
print_symbol_info (FUNCTIONS_DOMAIN, q.symbol, q.block,
|
print_symbol_info (FUNCTIONS_DOMAIN, q.symbol, q.block,
|
||||||
last_filename);
|
last_filename);
|
||||||
last_filename
|
last_filename
|
||||||
= symtab_to_filename_for_display (symbol_symtab (q.symbol));
|
= symtab_to_filename_for_display (q.symbol->symtab ());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
24
gdb/symtab.h
24
gdb/symtab.h
|
@ -1386,6 +1386,18 @@ struct symbol : public general_symbol_info, public allocate_on_obstack
|
||||||
|
|
||||||
struct gdbarch *arch () const;
|
struct gdbarch *arch () const;
|
||||||
|
|
||||||
|
/* Return the symtab of this symbol. It is an error to call this if
|
||||||
|
is_objfile_owned is false, which only happens for
|
||||||
|
architecture-provided types. */
|
||||||
|
|
||||||
|
struct symtab *symtab () const;
|
||||||
|
|
||||||
|
/* Set the symtab of this symbol to SYMTAB. It is an error to call
|
||||||
|
this if is_objfile_owned is false, which only happens for
|
||||||
|
architecture-provided types. */
|
||||||
|
|
||||||
|
void set_symtab (struct symtab *symtab);
|
||||||
|
|
||||||
/* Data type of value */
|
/* Data type of value */
|
||||||
|
|
||||||
struct type *m_type = nullptr;
|
struct type *m_type = nullptr;
|
||||||
|
@ -1502,18 +1514,6 @@ extern int register_symbol_block_impl (enum address_class aclass,
|
||||||
extern int register_symbol_register_impl (enum address_class,
|
extern int register_symbol_register_impl (enum address_class,
|
||||||
const struct symbol_register_ops *);
|
const struct symbol_register_ops *);
|
||||||
|
|
||||||
/* Return the SYMTAB of SYMBOL.
|
|
||||||
It is an error to call this if symbol.is_objfile_owned is false, which
|
|
||||||
only happens for architecture-provided types. */
|
|
||||||
|
|
||||||
extern struct symtab *symbol_symtab (const struct symbol *symbol);
|
|
||||||
|
|
||||||
/* Set the symtab of SYMBOL to SYMTAB.
|
|
||||||
It is an error to call this if symbol.is_objfile_owned is false, which
|
|
||||||
only happens for architecture-provided types. */
|
|
||||||
|
|
||||||
extern void symbol_set_symtab (struct symbol *symbol, struct symtab *symtab);
|
|
||||||
|
|
||||||
/* An instance of this type is used to represent a C++ template
|
/* An instance of this type is used to represent a C++ template
|
||||||
function. A symbol is really of this type iff
|
function. A symbol is really of this type iff
|
||||||
symbol::is_cplus_template_function is true. */
|
symbol::is_cplus_template_function is true. */
|
||||||
|
|
Loading…
Add table
Reference in a new issue