mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 04:24:43 +00:00
gdb: change objfiles_iterator to yield references
Same rationale as the previous patches. Change-Id: I4673cedaa902c9a327d24d73508b18cf60a2cd02 Approved-By: Tom Tromey <tom@tromey.com>
This commit is contained in:
@@ -5584,11 +5584,11 @@ add_nonlocal_symbols (std::vector<struct block_symbol> &result,
|
||||
|
||||
bool is_wild_match = lookup_name.ada ().wild_match_p ();
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
map_matching_symbols (objfile, lookup_name, domain, global, data);
|
||||
map_matching_symbols (&objfile, lookup_name, domain, global, data);
|
||||
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
const struct block *global_block
|
||||
= cu->blockvector ()->global_block ();
|
||||
@@ -5605,8 +5605,8 @@ add_nonlocal_symbols (std::vector<struct block_symbol> &result,
|
||||
std::string bracket_name = std::string ("<_ada_") + name + '>';
|
||||
lookup_name_info name1 (bracket_name, symbol_name_match_type::FULL);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
map_matching_symbols (objfile, name1, domain, global, data);
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
map_matching_symbols (&objfile, name1, domain, global, data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13053,16 +13053,16 @@ ada_add_standard_exceptions (compiled_regex *preg,
|
||||
/* Iterate over all objfiles irrespective of scope or linker
|
||||
namespaces so we get all exceptions anywhere in the
|
||||
progspace. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
if (match_name (msymbol->linkage_name (), lookup_name,
|
||||
nullptr)
|
||||
&& msymbol->type () != mst_solib_trampoline)
|
||||
{
|
||||
ada_exc_info info
|
||||
= {name, msymbol->value_address (objfile)};
|
||||
= {name, msymbol->value_address (&objfile)};
|
||||
|
||||
exceptions->push_back (info);
|
||||
}
|
||||
@@ -13146,7 +13146,7 @@ ada_add_global_exceptions (compiled_regex *preg,
|
||||
|
||||
/* Iterate over all objfiles irrespective of scope or linker namespaces
|
||||
so we get all exceptions anywhere in the progspace. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
auto callback = [&] (compunit_symtab *s)
|
||||
{
|
||||
@@ -13175,7 +13175,7 @@ ada_add_global_exceptions (compiled_regex *preg,
|
||||
the regular expression used to do the matching refers to the
|
||||
natural name. So match against the decoded name. */
|
||||
auto any = lookup_name_info::match_any ();
|
||||
objfile->search
|
||||
objfile.search
|
||||
(nullptr,
|
||||
&any,
|
||||
[&] (const char *search_name)
|
||||
@@ -13709,9 +13709,9 @@ public:
|
||||
anything that isn't a text symbol (everything else will be
|
||||
handled by the psymtab code above). */
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
|
||||
@@ -13767,7 +13767,7 @@ public:
|
||||
/* Go through the symtabs and check the externs and statics for
|
||||
symbols which match. */
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
auto callback = [&] (compunit_symtab *s)
|
||||
{
|
||||
@@ -13795,7 +13795,7 @@ public:
|
||||
return true;
|
||||
};
|
||||
|
||||
objfile->search
|
||||
objfile.search
|
||||
(nullptr, &lookup_name, nullptr, callback,
|
||||
SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
|
||||
SEARCH_ALL_DOMAINS);
|
||||
|
||||
@@ -52,8 +52,8 @@ set_can_use_agent (const char *args, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
/* Since the setting was off, we may not have observed the objfiles and
|
||||
therefore not looked up the required symbols. Do so now. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (agent_look_up_symbols (objfile) == 0)
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
if (agent_look_up_symbols (&objfile) == 0)
|
||||
break;
|
||||
}
|
||||
if (target_use_agent (can_use) == 0)
|
||||
|
||||
@@ -3664,13 +3664,13 @@ create_overlay_event_breakpoint (void)
|
||||
{
|
||||
const char *const func_name = "_ovly_debug_event";
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
struct breakpoint *b;
|
||||
struct breakpoint_objfile_data *bp_objfile_data;
|
||||
CORE_ADDR addr;
|
||||
|
||||
bp_objfile_data = get_breakpoint_objfile_data (objfile);
|
||||
bp_objfile_data = get_breakpoint_objfile_data (&objfile);
|
||||
|
||||
if (msym_not_found_p (bp_objfile_data->overlay_msym.minsym))
|
||||
continue;
|
||||
@@ -3679,7 +3679,7 @@ create_overlay_event_breakpoint (void)
|
||||
{
|
||||
bound_minimal_symbol m
|
||||
= lookup_minimal_symbol_text (current_program_space, func_name,
|
||||
objfile);
|
||||
&objfile);
|
||||
if (m.minsym == NULL)
|
||||
{
|
||||
/* Avoid future lookups in this objfile. */
|
||||
@@ -3690,7 +3690,7 @@ create_overlay_event_breakpoint (void)
|
||||
}
|
||||
|
||||
addr = bp_objfile_data->overlay_msym.value_address ();
|
||||
b = create_internal_breakpoint (objfile->arch (), addr,
|
||||
b = create_internal_breakpoint (objfile.arch (), addr,
|
||||
bp_overlay_event);
|
||||
b->locspec = new_explicit_location_spec_function (func_name);
|
||||
|
||||
@@ -3815,19 +3815,19 @@ create_longjmp_master_breakpoint (void)
|
||||
{
|
||||
set_current_program_space (pspace);
|
||||
|
||||
for (objfile *obj : pspace->objfiles ())
|
||||
for (objfile &obj : pspace->objfiles ())
|
||||
{
|
||||
/* Skip separate debug object, it's handled in the loop below. */
|
||||
if (obj->separate_debug_objfile_backlink != nullptr)
|
||||
if (obj.separate_debug_objfile_backlink != nullptr)
|
||||
continue;
|
||||
|
||||
/* Try a probe kind breakpoint on main objfile. */
|
||||
if (create_longjmp_master_breakpoint_probe (obj))
|
||||
if (create_longjmp_master_breakpoint_probe (&obj))
|
||||
continue;
|
||||
|
||||
/* Try longjmp_names kind breakpoints on main and separate_debug
|
||||
objfiles. */
|
||||
for (objfile *debug_objfile : obj->separate_debug_objfiles ())
|
||||
for (objfile *debug_objfile : obj.separate_debug_objfiles ())
|
||||
if (create_longjmp_master_breakpoint_names (debug_objfile))
|
||||
break;
|
||||
}
|
||||
@@ -3847,12 +3847,12 @@ create_std_terminate_master_breakpoint (void)
|
||||
{
|
||||
set_current_program_space (pspace);
|
||||
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
struct breakpoint *b;
|
||||
struct breakpoint_objfile_data *bp_objfile_data;
|
||||
|
||||
bp_objfile_data = get_breakpoint_objfile_data (objfile);
|
||||
bp_objfile_data = get_breakpoint_objfile_data (&objfile);
|
||||
|
||||
if (msym_not_found_p (bp_objfile_data->terminate_msym.minsym))
|
||||
continue;
|
||||
@@ -3861,7 +3861,7 @@ create_std_terminate_master_breakpoint (void)
|
||||
{
|
||||
bound_minimal_symbol m
|
||||
= lookup_minimal_symbol (current_program_space, func_name,
|
||||
objfile);
|
||||
&objfile);
|
||||
if (m.minsym == NULL || (m.minsym->type () != mst_text
|
||||
&& m.minsym->type () != mst_file_text))
|
||||
{
|
||||
@@ -3872,7 +3872,7 @@ create_std_terminate_master_breakpoint (void)
|
||||
bp_objfile_data->terminate_msym = m;
|
||||
}
|
||||
|
||||
b = create_internal_breakpoint (objfile->arch (),
|
||||
b = create_internal_breakpoint (objfile.arch (),
|
||||
bp_objfile_data->terminate_msym,
|
||||
bp_std_terminate_master);
|
||||
b->locspec = new_explicit_location_spec_function (func_name);
|
||||
@@ -3976,19 +3976,19 @@ create_exception_master_breakpoint_hook (objfile *objfile)
|
||||
static void
|
||||
create_exception_master_breakpoint (void)
|
||||
{
|
||||
for (objfile *obj : current_program_space->objfiles ())
|
||||
for (objfile &obj : current_program_space->objfiles ())
|
||||
{
|
||||
/* Skip separate debug object. */
|
||||
if (obj->separate_debug_objfile_backlink)
|
||||
if (obj.separate_debug_objfile_backlink)
|
||||
continue;
|
||||
|
||||
/* Try a probe kind breakpoint. */
|
||||
if (create_exception_master_breakpoint_probe (obj))
|
||||
if (create_exception_master_breakpoint_probe (&obj))
|
||||
continue;
|
||||
|
||||
/* Iterate over main and separate debug objects and try an
|
||||
_Unwind_DebugHook kind breakpoint. */
|
||||
for (objfile *debug_objfile : obj->separate_debug_objfiles ())
|
||||
for (objfile *debug_objfile : obj.separate_debug_objfiles ())
|
||||
if (create_exception_master_breakpoint_hook (debug_objfile))
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1619,18 +1619,18 @@ set_comp_unit (struct objfile *objfile, struct comp_unit *unit)
|
||||
static struct dwarf2_fde *
|
||||
dwarf2_frame_find_fde (CORE_ADDR *pc, dwarf2_per_objfile **out_per_objfile)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
CORE_ADDR offset;
|
||||
|
||||
if (objfile->obfd == nullptr)
|
||||
if (objfile.obfd == nullptr)
|
||||
continue;
|
||||
|
||||
comp_unit *unit = find_comp_unit (objfile);
|
||||
comp_unit *unit = find_comp_unit (&objfile);
|
||||
if (unit == NULL)
|
||||
{
|
||||
dwarf2_build_frame_info (objfile);
|
||||
unit = find_comp_unit (objfile);
|
||||
dwarf2_build_frame_info (&objfile);
|
||||
unit = find_comp_unit (&objfile);
|
||||
}
|
||||
gdb_assert (unit != NULL);
|
||||
|
||||
@@ -1638,8 +1638,8 @@ dwarf2_frame_find_fde (CORE_ADDR *pc, dwarf2_per_objfile **out_per_objfile)
|
||||
if (fde_table->empty ())
|
||||
continue;
|
||||
|
||||
gdb_assert (!objfile->section_offsets.empty ());
|
||||
offset = objfile->text_section_offset ();
|
||||
gdb_assert (!objfile.section_offsets.empty ());
|
||||
offset = objfile.text_section_offset ();
|
||||
|
||||
gdb_assert (!fde_table->empty ());
|
||||
unrelocated_addr seek_pc = (unrelocated_addr) (*pc - offset);
|
||||
@@ -1652,7 +1652,7 @@ dwarf2_frame_find_fde (CORE_ADDR *pc, dwarf2_per_objfile **out_per_objfile)
|
||||
{
|
||||
*pc = (CORE_ADDR) (*it)->initial_location + offset;
|
||||
if (out_per_objfile != nullptr)
|
||||
*out_per_objfile = get_dwarf2_per_objfile (objfile);
|
||||
*out_per_objfile = get_dwarf2_per_objfile (&objfile);
|
||||
|
||||
return *it;
|
||||
}
|
||||
|
||||
@@ -1767,19 +1767,19 @@ save_gdb_index_command (const char *args, int from_tty)
|
||||
dw_index_kind index_kind
|
||||
= (opts.dwarf_5 ? dw_index_kind::DEBUG_NAMES : dw_index_kind::GDB_INDEX);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
/* If the objfile does not correspond to an actual file, skip it. */
|
||||
if ((objfile->flags & OBJF_NOT_FILENAME) != 0)
|
||||
if ((objfile.flags & OBJF_NOT_FILENAME) != 0)
|
||||
continue;
|
||||
|
||||
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
|
||||
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (&objfile);
|
||||
|
||||
if (per_objfile != NULL)
|
||||
{
|
||||
try
|
||||
{
|
||||
const char *basename = lbasename (objfile_name (objfile));
|
||||
const char *basename = lbasename (objfile_name (&objfile));
|
||||
const dwz_file *dwz = per_objfile->per_bfd->get_dwz_file ();
|
||||
const char *dwz_basename = NULL;
|
||||
|
||||
@@ -1793,7 +1793,7 @@ save_gdb_index_command (const char *args, int from_tty)
|
||||
{
|
||||
exception_fprintf (gdb_stderr, except,
|
||||
_("Error while writing index for `%s': "),
|
||||
objfile_name (objfile));
|
||||
objfile_name (&objfile));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
14
gdb/gcore.c
14
gdb/gcore.c
@@ -424,10 +424,10 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, bool read,
|
||||
/* See if this region of memory lies inside a known file on disk.
|
||||
If so, we can avoid copying its contents by clearing SEC_LOAD. */
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &objsec : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &objsec : objfile.sections ())
|
||||
{
|
||||
bfd *abfd = objfile->obfd.get ();
|
||||
bfd *abfd = objfile.obfd.get ();
|
||||
asection *asec = objsec.the_bfd_section;
|
||||
bfd_vma align = (bfd_vma) 1 << bfd_section_alignment (asec);
|
||||
bfd_vma start = objsec.addr () & -align;
|
||||
@@ -440,7 +440,7 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, bool read,
|
||||
|
||||
This BFD was synthesized from reading target memory,
|
||||
we don't want to omit that. */
|
||||
if (objfile->separate_debug_objfile_backlink == NULL
|
||||
if (objfile.separate_debug_objfile_backlink == NULL
|
||||
&& ((vaddr >= start && vaddr + size <= end)
|
||||
|| (start >= vaddr && end <= vaddr + size))
|
||||
&& !(bfd_get_file_flags (abfd) & BFD_IN_MEMORY))
|
||||
@@ -532,14 +532,14 @@ objfile_find_memory_regions (struct target_ops *self,
|
||||
bfd_vma temp_bottom = 0, temp_top = 0;
|
||||
|
||||
/* Call callback function for each objfile section. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &objsec : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &objsec : objfile.sections ())
|
||||
{
|
||||
asection *isec = objsec.the_bfd_section;
|
||||
flagword flags = bfd_section_flags (isec);
|
||||
|
||||
/* Separate debug info files are irrelevant for gcore. */
|
||||
if (objfile->separate_debug_objfile_backlink != NULL)
|
||||
if (objfile.separate_debug_objfile_backlink != NULL)
|
||||
continue;
|
||||
|
||||
if ((flags & SEC_ALLOC) || (flags & SEC_LOAD))
|
||||
|
||||
@@ -353,9 +353,9 @@ gdbscm_objfiles (void)
|
||||
|
||||
result = SCM_EOL;
|
||||
|
||||
for (objfile *objf : current_program_space->objfiles ())
|
||||
for (objfile &objf : current_program_space->objfiles ())
|
||||
{
|
||||
SCM item = ofscm_scm_from_objfile (objf);
|
||||
SCM item = ofscm_scm_from_objfile (&objf);
|
||||
|
||||
result = scm_cons (item, result);
|
||||
}
|
||||
|
||||
@@ -427,9 +427,9 @@ ppscm_search_pp_list (SCM list, SCM value)
|
||||
static SCM
|
||||
ppscm_find_pretty_printer_from_objfiles (SCM value)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
objfile_smob *o_smob = ofscm_objfile_smob_from_objfile (objfile);
|
||||
objfile_smob *o_smob = ofscm_objfile_smob_from_objfile (&objfile);
|
||||
SCM pp
|
||||
= ppscm_search_pp_list (ofscm_objfile_smob_pretty_printers (o_smob),
|
||||
value);
|
||||
|
||||
@@ -277,11 +277,11 @@ gdbscm_progspace_objfiles (SCM self)
|
||||
|
||||
result = SCM_EOL;
|
||||
|
||||
for (objfile *objfile : p_smob->pspace->objfiles ())
|
||||
for (objfile &objfile : p_smob->pspace->objfiles ())
|
||||
{
|
||||
if (objfile->separate_debug_objfile_backlink == NULL)
|
||||
if (objfile.separate_debug_objfile_backlink == NULL)
|
||||
{
|
||||
SCM item = ofscm_scm_from_objfile (objfile);
|
||||
SCM item = ofscm_scm_from_objfile (&objfile);
|
||||
|
||||
result = scm_cons (item, result);
|
||||
}
|
||||
|
||||
@@ -487,18 +487,18 @@ find_unwind_entry (CORE_ADDR pc)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
struct hppa_unwind_info *ui;
|
||||
ui = NULL;
|
||||
struct hppa_objfile_private *priv = hppa_objfile_priv_data.get (objfile);
|
||||
struct hppa_objfile_private *priv = hppa_objfile_priv_data.get (&objfile);
|
||||
if (priv)
|
||||
ui = priv->unwind_info;
|
||||
|
||||
if (!ui)
|
||||
{
|
||||
read_unwind_info (objfile);
|
||||
priv = hppa_objfile_priv_data.get (objfile);
|
||||
read_unwind_info (&objfile);
|
||||
priv = hppa_objfile_priv_data.get (&objfile);
|
||||
if (priv == NULL)
|
||||
error (_("Internal error reading unwind information."));
|
||||
ui = priv->unwind_info;
|
||||
|
||||
@@ -2861,13 +2861,13 @@ ia64_get_dyn_info_list (unw_addr_space_t as,
|
||||
if (!libunwind_is_initialized ())
|
||||
return -UNW_ENOINFO;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
void *buf = NULL;
|
||||
|
||||
text_sec = objfile->sections + SECT_OFF_TEXT (objfile);
|
||||
text_sec = objfile.sections + SECT_OFF_TEXT ((&objfile));
|
||||
ip = text_sec->addr ();
|
||||
ret = ia64_find_unwind_table (objfile, ip, &di, &buf);
|
||||
ret = ia64_find_unwind_table (&objfile, ip, &di, &buf);
|
||||
if (ret >= 0)
|
||||
{
|
||||
addr = libunwind_find_dyn_list (as, &di, arg);
|
||||
@@ -2880,7 +2880,7 @@ ia64_get_dyn_info_list (unw_addr_space_t as,
|
||||
gdb_printf (gdb_stdlog,
|
||||
"dynamic unwind table in objfile %s "
|
||||
"at %s (gp=%s)\n",
|
||||
bfd_get_filename (objfile->obfd),
|
||||
bfd_get_filename (objfile.obfd),
|
||||
hex_string (addr), hex_string (di.gp));
|
||||
*dilap = addr;
|
||||
return 0;
|
||||
|
||||
56
gdb/jit.c
56
gdb/jit.c
@@ -80,9 +80,9 @@ maint_info_jit_cmd (const char *args, int from_tty)
|
||||
std::optional<ui_out_emit_table> table_emitter;
|
||||
|
||||
/* Print a line for each JIT-ed objfile. */
|
||||
for (objfile *obj : inf->pspace->objfiles ())
|
||||
for (objfile &obj : inf->pspace->objfiles ())
|
||||
{
|
||||
if (obj->jited_data == nullptr)
|
||||
if (obj.jited_data == nullptr)
|
||||
continue;
|
||||
|
||||
if (!printed_header)
|
||||
@@ -91,7 +91,7 @@ maint_info_jit_cmd (const char *args, int from_tty)
|
||||
|
||||
/* The +2 allows for the leading '0x', then one character for
|
||||
every 4-bits. */
|
||||
int addr_width = 2 + (gdbarch_ptr_bit (obj->arch ()) / 4);
|
||||
int addr_width = 2 + (gdbarch_ptr_bit (obj.arch ()) / 4);
|
||||
|
||||
/* The std::max here selects between the width of an address (as
|
||||
a string) and the width of the column header string. */
|
||||
@@ -109,12 +109,12 @@ maint_info_jit_cmd (const char *args, int from_tty)
|
||||
|
||||
ui_out_emit_tuple tuple_emitter (current_uiout, "jit-objfile");
|
||||
|
||||
current_uiout->field_core_addr ("jit_code_entry-address", obj->arch (),
|
||||
obj->jited_data->addr);
|
||||
current_uiout->field_core_addr ("symfile-address", obj->arch (),
|
||||
obj->jited_data->symfile_addr);
|
||||
current_uiout->field_core_addr ("jit_code_entry-address", obj.arch (),
|
||||
obj.jited_data->addr);
|
||||
current_uiout->field_core_addr ("symfile-address", obj.arch (),
|
||||
obj.jited_data->symfile_addr);
|
||||
current_uiout->field_unsigned ("symfile-size",
|
||||
obj->jited_data->symfile_size);
|
||||
obj.jited_data->symfile_size);
|
||||
current_uiout->text ("\n");
|
||||
}
|
||||
}
|
||||
@@ -833,10 +833,10 @@ jit_register_code (struct gdbarch *gdbarch,
|
||||
static struct objfile *
|
||||
jit_find_objf_with_entry_addr (CORE_ADDR entry_addr)
|
||||
{
|
||||
for (objfile *objf : current_program_space->objfiles ())
|
||||
for (objfile &objf : current_program_space->objfiles ())
|
||||
{
|
||||
if (objf->jited_data != nullptr && objf->jited_data->addr == entry_addr)
|
||||
return objf;
|
||||
if (objf.jited_data != nullptr && objf.jited_data->addr == entry_addr)
|
||||
return &objf;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -853,9 +853,9 @@ jit_breakpoint_deleted (struct breakpoint *b)
|
||||
|
||||
for (bp_location &iter : b->locations ())
|
||||
{
|
||||
for (objfile *objf : iter.pspace->objfiles ())
|
||||
for (objfile &objf : iter.pspace->objfiles ())
|
||||
{
|
||||
jiter_objfile_data *jiter_data = objf->jiter_data.get ();
|
||||
jiter_objfile_data *jiter_data = objf.jiter_data.get ();
|
||||
|
||||
if (jiter_data != nullptr
|
||||
&& jiter_data->jit_breakpoint == iter.owner)
|
||||
@@ -873,44 +873,44 @@ jit_breakpoint_deleted (struct breakpoint *b)
|
||||
static void
|
||||
jit_breakpoint_re_set_internal (struct gdbarch *gdbarch, program_space *pspace)
|
||||
{
|
||||
for (objfile *the_objfile : pspace->objfiles ())
|
||||
for (objfile &the_objfile : pspace->objfiles ())
|
||||
{
|
||||
/* Skip separate debug objects. */
|
||||
if (the_objfile->separate_debug_objfile_backlink != nullptr)
|
||||
if (the_objfile.separate_debug_objfile_backlink != nullptr)
|
||||
continue;
|
||||
|
||||
if (the_objfile->skip_jit_symbol_lookup)
|
||||
if (the_objfile.skip_jit_symbol_lookup)
|
||||
continue;
|
||||
|
||||
/* Lookup the registration symbol. If it is missing, then we
|
||||
assume we are not attached to a JIT. */
|
||||
bound_minimal_symbol reg_symbol
|
||||
= lookup_minimal_symbol_text (pspace, jit_break_name, the_objfile);
|
||||
= lookup_minimal_symbol_text (pspace, jit_break_name, &the_objfile);
|
||||
if (reg_symbol.minsym == NULL
|
||||
|| reg_symbol.value_address () == 0)
|
||||
{
|
||||
/* No need to repeat the lookup the next time. */
|
||||
the_objfile->skip_jit_symbol_lookup = true;
|
||||
the_objfile.skip_jit_symbol_lookup = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
bound_minimal_symbol desc_symbol
|
||||
= lookup_minimal_symbol_linkage (jit_descriptor_name,
|
||||
the_objfile, true);
|
||||
&the_objfile, true);
|
||||
if (desc_symbol.minsym == NULL
|
||||
|| desc_symbol.value_address () == 0)
|
||||
{
|
||||
/* No need to repeat the lookup the next time. */
|
||||
the_objfile->skip_jit_symbol_lookup = true;
|
||||
the_objfile.skip_jit_symbol_lookup = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
jiter_objfile_data *objf_data
|
||||
= get_jiter_objfile_data (the_objfile);
|
||||
= get_jiter_objfile_data (&the_objfile);
|
||||
objf_data->register_code = reg_symbol.minsym;
|
||||
objf_data->descriptor = desc_symbol.minsym;
|
||||
|
||||
CORE_ADDR addr = objf_data->register_code->value_address (the_objfile);
|
||||
CORE_ADDR addr = objf_data->register_code->value_address (&the_objfile);
|
||||
jit_debug_printf ("breakpoint_addr = %s", paddress (gdbarch, addr));
|
||||
|
||||
/* Check if we need to re-create the breakpoint. */
|
||||
@@ -1176,14 +1176,14 @@ jit_inferior_init (inferior *inf)
|
||||
|
||||
jit_breakpoint_re_set_internal (gdbarch, pspace);
|
||||
|
||||
for (objfile *jiter : pspace->objfiles ())
|
||||
for (objfile &jiter : pspace->objfiles ())
|
||||
{
|
||||
if (jiter->jiter_data == nullptr)
|
||||
if (jiter.jiter_data == nullptr)
|
||||
continue;
|
||||
|
||||
/* Read the descriptor so we can check the version number and load
|
||||
any already JITed functions. */
|
||||
if (!jit_read_descriptor (gdbarch, &descriptor, jiter))
|
||||
if (!jit_read_descriptor (gdbarch, &descriptor, &jiter))
|
||||
continue;
|
||||
|
||||
/* Check that the version number agrees with that we support. */
|
||||
@@ -1248,10 +1248,10 @@ jit_breakpoint_re_set (void)
|
||||
static void
|
||||
jit_inferior_exit_hook (struct inferior *inf)
|
||||
{
|
||||
for (objfile *objf : current_program_space->objfiles_safe ())
|
||||
for (objfile &objf : current_program_space->objfiles_safe ())
|
||||
{
|
||||
if (objf->jited_data != nullptr && objf->jited_data->addr != 0)
|
||||
objf->unlink ();
|
||||
if (objf.jited_data != nullptr && objf.jited_data->addr != 0)
|
||||
objf.unlink ();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1137,7 +1137,7 @@ iterate_over_all_matching_symtabs
|
||||
|
||||
set_current_program_space (pspace);
|
||||
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
auto expand_callback = [&] (compunit_symtab *cu)
|
||||
{
|
||||
@@ -1170,8 +1170,8 @@ iterate_over_all_matching_symtabs
|
||||
return true;
|
||||
};
|
||||
|
||||
objfile->search (nullptr, &lookup_name, nullptr, expand_callback,
|
||||
SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK, domain);
|
||||
objfile.search (nullptr, &lookup_name, nullptr, expand_callback,
|
||||
SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK, domain);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4176,12 +4176,12 @@ search_minsyms_for_name (struct collect_info *info,
|
||||
|
||||
set_current_program_space (pspace);
|
||||
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
iterate_over_minimal_symbols (objfile, name,
|
||||
iterate_over_minimal_symbols (&objfile, name,
|
||||
[&] (struct minimal_symbol *msym)
|
||||
{
|
||||
add_minsym (msym, objfile, nullptr,
|
||||
add_minsym (msym, &objfile, nullptr,
|
||||
info->state->list_mode,
|
||||
&minsyms);
|
||||
return false;
|
||||
|
||||
@@ -1074,17 +1074,17 @@ try_thread_db_load_from_pdir (const char *subdir)
|
||||
if (!auto_load_thread_db)
|
||||
return false;
|
||||
|
||||
for (objfile *obj : current_program_space->objfiles ())
|
||||
if (libpthread_objfile_p (obj))
|
||||
for (objfile &obj : current_program_space->objfiles ())
|
||||
if (libpthread_objfile_p (&obj))
|
||||
{
|
||||
if (try_thread_db_load_from_pdir_1 (obj, subdir))
|
||||
if (try_thread_db_load_from_pdir_1 (&obj, subdir))
|
||||
return true;
|
||||
|
||||
/* We may have found the separate-debug-info version of
|
||||
libpthread, and it may live in a directory without a matching
|
||||
libthread_db. */
|
||||
if (obj->separate_debug_objfile_backlink != NULL)
|
||||
return try_thread_db_load_from_pdir_1 (obj->separate_debug_objfile_backlink,
|
||||
if (obj.separate_debug_objfile_backlink != NULL)
|
||||
return try_thread_db_load_from_pdir_1 (obj.separate_debug_objfile_backlink,
|
||||
subdir);
|
||||
|
||||
return false;
|
||||
@@ -1183,8 +1183,8 @@ thread_db_load_search (void)
|
||||
static bool
|
||||
has_libpthread (void)
|
||||
{
|
||||
for (objfile *obj : current_program_space->objfiles ())
|
||||
if (libpthread_objfile_p (obj))
|
||||
for (objfile &obj : current_program_space->objfiles ())
|
||||
if (libpthread_objfile_p (&obj))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
||||
@@ -1342,8 +1342,8 @@ captured_main_1 (struct captured_main_args *context)
|
||||
We wait until now because it is common to add to the source search
|
||||
path in local_gdbinit. */
|
||||
global_auto_load = save_auto_load;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
load_auto_scripts_for_objfile (objfile);
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
load_auto_scripts_for_objfile (&objfile);
|
||||
|
||||
/* Process '-x' and '-ex' options. */
|
||||
execute_cmdargs (&cmdarg_vec, CMDARG_FILE, CMDARG_COMMAND, &ret);
|
||||
|
||||
20
gdb/maint.c
20
gdb/maint.c
@@ -464,14 +464,14 @@ maintenance_info_sections (const char *arg, int from_tty)
|
||||
gdb::option::process_options
|
||||
(&arg, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_ERROR, group);
|
||||
|
||||
for (objfile *ofile : current_program_space->objfiles ())
|
||||
for (objfile &ofile : current_program_space->objfiles ())
|
||||
{
|
||||
if (ofile->obfd == current_program_space->exec_bfd ())
|
||||
maint_print_all_sections (_("Exec file: "), ofile->obfd.get (),
|
||||
ofile, arg);
|
||||
if (ofile.obfd == current_program_space->exec_bfd ())
|
||||
maint_print_all_sections (_("Exec file: "), ofile.obfd.get (),
|
||||
&ofile, arg);
|
||||
else if (opts.all_objects)
|
||||
maint_print_all_sections (_("Object file: "), ofile->obfd.get (),
|
||||
ofile, arg);
|
||||
maint_print_all_sections (_("Object file: "), ofile.obfd.get (),
|
||||
&ofile, arg);
|
||||
}
|
||||
|
||||
if (current_program_space->core_bfd () != nullptr)
|
||||
@@ -580,8 +580,8 @@ maintenance_translate_address (const char *arg, int from_tty)
|
||||
int arg_len = p - arg;
|
||||
p = skip_spaces (p + 1);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &iter : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &iter : objfile.sections ())
|
||||
{
|
||||
if (strncmp (iter.the_bfd_section->name, arg, arg_len) == 0)
|
||||
goto found;
|
||||
@@ -969,9 +969,9 @@ count_symtabs_and_blocks (int *nr_symtabs_ptr, int *nr_compunit_symtabs_ptr,
|
||||
current_program_space may be NULL. */
|
||||
if (current_program_space != NULL)
|
||||
{
|
||||
for (objfile *o : current_program_space->objfiles ())
|
||||
for (objfile &o : current_program_space->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cu : o->compunits ())
|
||||
for (compunit_symtab *cu : o.compunits ())
|
||||
{
|
||||
++nr_compunit_symtabs;
|
||||
nr_blocks += cu->blockvector ()->num_blocks ();
|
||||
|
||||
@@ -372,23 +372,23 @@ lookup_minimal_symbol (program_space *pspace, const char *name, objfile *objf,
|
||||
|
||||
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
|
||||
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
if (found.external_symbol.minsym != NULL)
|
||||
break;
|
||||
|
||||
if (objf == NULL || objf == objfile
|
||||
|| objf == objfile->separate_debug_objfile_backlink)
|
||||
if (objf == NULL || objf == &objfile
|
||||
|| objf == objfile.separate_debug_objfile_backlink)
|
||||
{
|
||||
symbol_lookup_debug_printf ("lookup_minimal_symbol (%s, %s, %s, %s)",
|
||||
host_address_to_string (pspace),
|
||||
name, sfile != NULL ? sfile : "NULL",
|
||||
objfile_debug_name (objfile));
|
||||
objfile_debug_name (&objfile));
|
||||
|
||||
/* Do two passes: the first over the ordinary hash table,
|
||||
and the second over the demangled hash table. */
|
||||
lookup_minimal_symbol_mangled (name, sfile, objfile,
|
||||
objfile->per_bfd->msymbol_hash,
|
||||
lookup_minimal_symbol_mangled (name, sfile, &objfile,
|
||||
objfile.per_bfd->msymbol_hash,
|
||||
mangled_hash, mangled_cmp, found);
|
||||
|
||||
/* If not found, try the demangled hash table. */
|
||||
@@ -398,7 +398,7 @@ lookup_minimal_symbol (program_space *pspace, const char *name, objfile *objf,
|
||||
table (usually just zero or one languages). */
|
||||
for (unsigned iter = 0; iter < nr_languages; ++iter)
|
||||
{
|
||||
if (!objfile->per_bfd->demangled_hash_languages.test (iter))
|
||||
if (!objfile.per_bfd->demangled_hash_languages.test (iter))
|
||||
continue;
|
||||
enum language lang = (enum language) iter;
|
||||
|
||||
@@ -410,9 +410,9 @@ lookup_minimal_symbol (program_space *pspace, const char *name, objfile *objf,
|
||||
= language_def (lang)->get_symbol_name_matcher
|
||||
(lookup_name);
|
||||
struct minimal_symbol **msymbol_demangled_hash
|
||||
= objfile->per_bfd->msymbol_demangled_hash;
|
||||
= objfile.per_bfd->msymbol_demangled_hash;
|
||||
|
||||
lookup_minimal_symbol_demangled (lookup_name, sfile, objfile,
|
||||
lookup_minimal_symbol_demangled (lookup_name, sfile, &objfile,
|
||||
msymbol_demangled_hash,
|
||||
hash, match, found);
|
||||
|
||||
@@ -587,16 +587,16 @@ bound_minimal_symbol
|
||||
lookup_minimal_symbol_linkage (program_space *pspace, const char *name,
|
||||
bool match_static_type, bool only_main)
|
||||
{
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
if (objfile->separate_debug_objfile_backlink != nullptr)
|
||||
if (objfile.separate_debug_objfile_backlink != nullptr)
|
||||
continue;
|
||||
|
||||
if (only_main && (objfile->flags & OBJF_MAINLINE) == 0)
|
||||
if (only_main && (objfile.flags & OBJF_MAINLINE) == 0)
|
||||
continue;
|
||||
|
||||
bound_minimal_symbol minsym
|
||||
= lookup_minimal_symbol_linkage (name, objfile, match_static_type);
|
||||
= lookup_minimal_symbol_linkage (name, &objfile, match_static_type);
|
||||
if (minsym.minsym != nullptr)
|
||||
return minsym;
|
||||
}
|
||||
@@ -644,11 +644,11 @@ lookup_minimal_symbol_text (program_space *pspace, const char *name,
|
||||
|
||||
if (objf == nullptr)
|
||||
{
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
if (found_symbol.minsym != NULL)
|
||||
break;
|
||||
search (objfile);
|
||||
search (&objfile);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -679,16 +679,16 @@ lookup_minimal_symbol_by_pc_name (CORE_ADDR pc, const char *name,
|
||||
|
||||
unsigned int hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if (objf == NULL || objf == objfile
|
||||
|| objf == objfile->separate_debug_objfile_backlink)
|
||||
if (objf == NULL || objf == &objfile
|
||||
|| objf == objfile.separate_debug_objfile_backlink)
|
||||
{
|
||||
for (msymbol = objfile->per_bfd->msymbol_hash[hash];
|
||||
for (msymbol = objfile.per_bfd->msymbol_hash[hash];
|
||||
msymbol != NULL;
|
||||
msymbol = msymbol->hash_next)
|
||||
{
|
||||
if (msymbol->value_address (objfile) == pc
|
||||
if (msymbol->value_address (&objfile) == pc
|
||||
&& strcmp (msymbol->linkage_name (), name) == 0)
|
||||
return msymbol;
|
||||
}
|
||||
@@ -1589,9 +1589,9 @@ find_solib_trampoline_target (const frame_info_ptr &frame, CORE_ADDR pc)
|
||||
|
||||
if (tsymbol != NULL)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
/* Also handle minimal symbols pointing to function
|
||||
descriptors. */
|
||||
@@ -1606,7 +1606,7 @@ find_solib_trampoline_target (const frame_info_ptr &frame, CORE_ADDR pc)
|
||||
|
||||
/* Ignore data symbols that are not function
|
||||
descriptors. */
|
||||
if (msymbol_is_function (objfile, msymbol, &func))
|
||||
if (msymbol_is_function (&objfile, msymbol, &func))
|
||||
return func;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -601,9 +601,9 @@ info_selectors_command (const char *regexp, int from_tty)
|
||||
}
|
||||
|
||||
/* First time through is JUST to get max length and count. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
name = msymbol->natural_name ();
|
||||
@@ -641,9 +641,9 @@ info_selectors_command (const char *regexp, int from_tty)
|
||||
|
||||
sym_arr = XALLOCAVEC (struct symbol *, matches);
|
||||
matches = 0;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
name = msymbol->natural_name ();
|
||||
@@ -755,9 +755,9 @@ info_classes_command (const char *regexp, int from_tty)
|
||||
}
|
||||
|
||||
/* First time through is JUST to get max length and count. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
name = msymbol->natural_name ();
|
||||
@@ -782,9 +782,9 @@ info_classes_command (const char *regexp, int from_tty)
|
||||
regexp ? regexp : "*");
|
||||
sym_arr = XALLOCAVEC (struct symbol *, matches);
|
||||
matches = 0;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
name = msymbol->natural_name ();
|
||||
@@ -988,7 +988,7 @@ find_methods (char type, const char *theclass, const char *category,
|
||||
|
||||
gdb_assert (symbol_names != NULL);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
unsigned int *objc_csym;
|
||||
|
||||
@@ -999,12 +999,12 @@ find_methods (char type, const char *theclass, const char *category,
|
||||
|
||||
unsigned int objfile_csym = 0;
|
||||
|
||||
objc_csym = objc_objfile_data.get (objfile);
|
||||
objc_csym = objc_objfile_data.get (&objfile);
|
||||
if (objc_csym != NULL && *objc_csym == 0)
|
||||
/* There are no ObjC symbols in this objfile. Skip it entirely. */
|
||||
continue;
|
||||
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
|
||||
@@ -1051,7 +1051,7 @@ find_methods (char type, const char *theclass, const char *category,
|
||||
}
|
||||
|
||||
if (objc_csym == NULL)
|
||||
objc_csym = objc_objfile_data.emplace (objfile, objfile_csym);
|
||||
objc_csym = objc_objfile_data.emplace (&objfile, objfile_csym);
|
||||
else
|
||||
/* Count of ObjC methods in this objfile should be constant. */
|
||||
gdb_assert (*objc_csym == objfile_csym);
|
||||
|
||||
@@ -695,8 +695,8 @@ objfile::has_symbols ()
|
||||
bool
|
||||
have_partial_symbols (program_space *pspace)
|
||||
{
|
||||
for (objfile *ofp : pspace->objfiles ())
|
||||
if (ofp->has_partial_symbols ())
|
||||
for (objfile &ofp : pspace->objfiles ())
|
||||
if (ofp.has_partial_symbols ())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -707,8 +707,8 @@ have_partial_symbols (program_space *pspace)
|
||||
bool
|
||||
have_full_symbols (program_space *pspace)
|
||||
{
|
||||
for (objfile *ofp : pspace->objfiles ())
|
||||
if (ofp->has_full_symbols ())
|
||||
for (objfile &ofp : pspace->objfiles ())
|
||||
if (ofp.has_full_symbols ())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -720,13 +720,13 @@ have_full_symbols (program_space *pspace)
|
||||
void
|
||||
objfile_purge_solibs (program_space *pspace)
|
||||
{
|
||||
for (objfile *objf : pspace->objfiles_safe ())
|
||||
for (objfile &objf : pspace->objfiles_safe ())
|
||||
{
|
||||
/* We assume that the solib package has been purged already, or will
|
||||
be soon. */
|
||||
|
||||
if (!(objf->flags & OBJF_USERLOADED) && (objf->flags & OBJF_SHARED))
|
||||
objf->unlink ();
|
||||
if (!(objf.flags & OBJF_USERLOADED) && (objf.flags & OBJF_SHARED))
|
||||
objf.unlink ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -735,8 +735,8 @@ objfile_purge_solibs (program_space *pspace)
|
||||
bool
|
||||
have_minimal_symbols (program_space *pspace)
|
||||
{
|
||||
for (objfile *ofp : pspace->objfiles ())
|
||||
if (ofp->per_bfd->minimal_symbol_count > 0)
|
||||
for (objfile &ofp : pspace->objfiles ())
|
||||
if (ofp.per_bfd->minimal_symbol_count > 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -803,10 +803,10 @@ sort_cmp (const struct obj_section *sect1, const obj_section *sect2)
|
||||
{
|
||||
/* Sort on sequence number of the objfile in the chain. */
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (objfile == objfile1)
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
if (&objfile == objfile1)
|
||||
return true;
|
||||
else if (objfile == objfile2)
|
||||
else if (&objfile == objfile2)
|
||||
return false;
|
||||
|
||||
/* We should have found one of the objfiles before getting here. */
|
||||
@@ -993,9 +993,9 @@ update_section_map (struct program_space *pspace,
|
||||
xfree (map);
|
||||
|
||||
alloc_size = 0;
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (obj_section &s : objfile->sections ())
|
||||
if (insert_section_p (objfile->obfd.get (), s.the_bfd_section))
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
for (obj_section &s : objfile.sections ())
|
||||
if (insert_section_p (objfile.obfd.get (), s.the_bfd_section))
|
||||
alloc_size += 1;
|
||||
|
||||
/* This happens on detach/attach (e.g. in gdb.base/attach.exp). */
|
||||
@@ -1009,9 +1009,9 @@ update_section_map (struct program_space *pspace,
|
||||
map = XNEWVEC (struct obj_section *, alloc_size);
|
||||
|
||||
i = 0;
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (obj_section &s : objfile->sections ())
|
||||
if (insert_section_p (objfile->obfd.get (), s.the_bfd_section))
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
for (obj_section &s : objfile.sections ())
|
||||
if (insert_section_p (objfile.obfd.get (), s.the_bfd_section))
|
||||
map[i++] = &s;
|
||||
|
||||
std::sort (map, map + alloc_size, sort_cmp);
|
||||
@@ -1144,10 +1144,10 @@ bool
|
||||
shared_objfile_contains_address_p (struct program_space *pspace,
|
||||
CORE_ADDR address)
|
||||
{
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
if ((objfile->flags & OBJF_SHARED) != 0
|
||||
&& is_addr_in_objfile (address, objfile))
|
||||
if ((objfile.flags & OBJF_SHARED) != 0
|
||||
&& is_addr_in_objfile (address, &objfile))
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1492,12 +1492,12 @@ info_symbol_command (const char *arg, int from_tty)
|
||||
error_no_arg (_("address"));
|
||||
|
||||
addr = parse_and_eval_address (arg);
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile.sections ())
|
||||
{
|
||||
/* Only process each object file once, even if there's a separate
|
||||
debug file. */
|
||||
if (objfile->separate_debug_objfile_backlink)
|
||||
if (objfile.separate_debug_objfile_backlink)
|
||||
continue;
|
||||
|
||||
sect_addr = overlay_mapped_address (addr, &osect);
|
||||
@@ -1511,7 +1511,7 @@ info_symbol_command (const char *arg, int from_tty)
|
||||
const char *loc_string;
|
||||
|
||||
matches = 1;
|
||||
offset = sect_addr - msymbol->value_address (objfile);
|
||||
offset = sect_addr - msymbol->value_address (&objfile);
|
||||
mapped = section_is_mapped (&osect) ? _("mapped") : _("unmapped");
|
||||
sec_name = osect.the_bfd_section->name;
|
||||
msym_name = msymbol->print_name ();
|
||||
|
||||
36
gdb/probe.c
36
gdb/probe.c
@@ -71,19 +71,19 @@ parse_probes_in_pspace (const static_probe_ops *spops,
|
||||
const char *name,
|
||||
std::vector<symtab_and_line> *result)
|
||||
{
|
||||
for (objfile *objfile : search_pspace->objfiles ())
|
||||
for (objfile &objfile : search_pspace->objfiles ())
|
||||
{
|
||||
if (!objfile->sf || !objfile->sf->sym_probe_fns)
|
||||
if (!objfile.sf || !objfile.sf->sym_probe_fns)
|
||||
continue;
|
||||
|
||||
if (objfile_namestr
|
||||
&& FILENAME_CMP (objfile_name (objfile), objfile_namestr) != 0
|
||||
&& FILENAME_CMP (lbasename (objfile_name (objfile)),
|
||||
&& FILENAME_CMP (objfile_name (&objfile), objfile_namestr) != 0
|
||||
&& FILENAME_CMP (lbasename (objfile_name (&objfile)),
|
||||
objfile_namestr) != 0)
|
||||
continue;
|
||||
|
||||
const std::vector<std::unique_ptr<probe>> &probes
|
||||
= objfile->sf->sym_probe_fns->sym_get_probes (objfile);
|
||||
= objfile.sf->sym_probe_fns->sym_get_probes (&objfile);
|
||||
|
||||
for (auto &p : probes)
|
||||
{
|
||||
@@ -97,12 +97,12 @@ parse_probes_in_pspace (const static_probe_ops *spops,
|
||||
continue;
|
||||
|
||||
symtab_and_line sal;
|
||||
sal.pc = p->get_relocated_address (objfile);
|
||||
sal.pc = p->get_relocated_address (&objfile);
|
||||
sal.explicit_pc = 1;
|
||||
sal.section = find_pc_overlay (sal.pc);
|
||||
sal.pspace = search_pspace;
|
||||
sal.prob = p.get ();
|
||||
sal.objfile = objfile;
|
||||
sal.objfile = &objfile;
|
||||
|
||||
result->push_back (std::move (sal));
|
||||
}
|
||||
@@ -245,19 +245,19 @@ find_probe_by_pc (CORE_ADDR pc)
|
||||
result.objfile = NULL;
|
||||
result.prob = NULL;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if (!objfile->sf || !objfile->sf->sym_probe_fns
|
||||
|| objfile->sect_index_text == -1)
|
||||
if (!objfile.sf || !objfile.sf->sym_probe_fns
|
||||
|| objfile.sect_index_text == -1)
|
||||
continue;
|
||||
|
||||
/* If this proves too inefficient, we can replace with a hash. */
|
||||
const std::vector<std::unique_ptr<probe>> &probes
|
||||
= objfile->sf->sym_probe_fns->sym_get_probes (objfile);
|
||||
= objfile.sf->sym_probe_fns->sym_get_probes (&objfile);
|
||||
for (auto &p : probes)
|
||||
if (p->get_relocated_address (objfile) == pc)
|
||||
if (p->get_relocated_address (&objfile) == pc)
|
||||
{
|
||||
result.objfile = objfile;
|
||||
result.objfile = &objfile;
|
||||
result.prob = p.get ();
|
||||
return result;
|
||||
}
|
||||
@@ -290,19 +290,19 @@ collect_probes (const std::string &objname, const std::string &provider,
|
||||
obj_pat.emplace (objname.c_str (), REG_NOSUB,
|
||||
_("Invalid object file regexp"));
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if (! objfile->sf || ! objfile->sf->sym_probe_fns)
|
||||
if (! objfile.sf || ! objfile.sf->sym_probe_fns)
|
||||
continue;
|
||||
|
||||
if (obj_pat)
|
||||
{
|
||||
if (obj_pat->exec (objfile_name (objfile), 0, NULL, 0) != 0)
|
||||
if (obj_pat->exec (objfile_name (&objfile), 0, NULL, 0) != 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
const std::vector<std::unique_ptr<probe>> &probes
|
||||
= objfile->sf->sym_probe_fns->sym_get_probes (objfile);
|
||||
= objfile.sf->sym_probe_fns->sym_get_probes (&objfile);
|
||||
|
||||
for (auto &p : probes)
|
||||
{
|
||||
@@ -317,7 +317,7 @@ collect_probes (const std::string &objname, const std::string &provider,
|
||||
&& probe_pat->exec (p->get_name ().c_str (), 0, NULL, 0) != 0)
|
||||
continue;
|
||||
|
||||
result.emplace_back (p.get (), objfile);
|
||||
result.emplace_back (p.get (), &objfile);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -153,8 +153,8 @@ program_space::iterate_over_objfiles_in_search_order
|
||||
return m_solib_ops->iterate_over_objfiles_in_search_order
|
||||
(cb, current_objfile);
|
||||
|
||||
for (const auto objfile : this->objfiles ())
|
||||
if (cb (objfile))
|
||||
for (auto &objfile : this->objfiles ())
|
||||
if (cb (&objfile))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -197,13 +197,13 @@ program_space::remove_objfile (struct objfile *objfile)
|
||||
struct objfile *
|
||||
program_space::objfile_for_address (CORE_ADDR address)
|
||||
{
|
||||
for (auto iter : objfiles ())
|
||||
for (auto &iter : objfiles ())
|
||||
{
|
||||
/* Don't check separate debug objfiles. */
|
||||
if (iter->separate_debug_objfile_backlink != nullptr)
|
||||
if (iter.separate_debug_objfile_backlink != nullptr)
|
||||
continue;
|
||||
if (is_addr_in_objfile (address, iter))
|
||||
return iter;
|
||||
if (is_addr_in_objfile (address, &iter))
|
||||
return &iter;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
#include "gdbsupport/owning_intrusive_list.h"
|
||||
#include "gdbsupport/refcounted-object.h"
|
||||
#include "gdbsupport/gdb_ref_ptr.h"
|
||||
#include "gdbsupport/reference-to-pointer-iterator.h"
|
||||
#include <vector>
|
||||
|
||||
struct target_ops;
|
||||
@@ -185,14 +184,13 @@ struct program_space
|
||||
a program space. */
|
||||
~program_space ();
|
||||
|
||||
using objfiles_iterator
|
||||
= reference_to_pointer_iterator<intrusive_list<objfile>::iterator>;
|
||||
using objfiles_iterator = intrusive_list<objfile>::iterator;
|
||||
using objfiles_range = iterator_range<objfiles_iterator>;
|
||||
|
||||
/* Return an iterable object that can be used to iterate over all
|
||||
objfiles. The basic use is in a foreach, like:
|
||||
|
||||
for (objfile *objf : pspace->objfiles ()) { ... } */
|
||||
for (objfile &objf : pspace->objfiles ()) { ... } */
|
||||
objfiles_range objfiles ()
|
||||
{
|
||||
return objfiles_range (objfiles_iterator (m_objfiles_list.begin ()));
|
||||
@@ -203,7 +201,7 @@ struct program_space
|
||||
/* An iterable object that can be used to iterate over all objfiles.
|
||||
The basic use is in a foreach, like:
|
||||
|
||||
for (objfile *objf : pspace->objfiles_safe ()) { ... }
|
||||
for (objfile &objf : pspace->objfiles_safe ()) { ... }
|
||||
|
||||
This variant uses a basic_safe_iterator so that objfiles can be
|
||||
deleted during iteration. */
|
||||
|
||||
@@ -1259,7 +1259,7 @@ maintenance_print_psymbols (const char *args, int from_tty)
|
||||
}
|
||||
|
||||
found = 0;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
int printed_objfile_header = 0;
|
||||
int print_for_objfile = 1;
|
||||
@@ -1267,12 +1267,12 @@ maintenance_print_psymbols (const char *args, int from_tty)
|
||||
QUIT;
|
||||
if (objfile_arg != NULL)
|
||||
print_for_objfile
|
||||
= compare_filenames_for_search (objfile_name (objfile),
|
||||
= compare_filenames_for_search (objfile_name (&objfile),
|
||||
objfile_arg);
|
||||
if (!print_for_objfile)
|
||||
continue;
|
||||
|
||||
for (const auto &iter : objfile->qf)
|
||||
for (const auto &iter : objfile.qf)
|
||||
{
|
||||
psymbol_functions *psf
|
||||
= dynamic_cast<psymbol_functions *> (iter.get ());
|
||||
@@ -1286,22 +1286,22 @@ maintenance_print_psymbols (const char *args, int from_tty)
|
||||
/* We don't assume each pc has a unique objfile (this is for
|
||||
debugging). */
|
||||
struct partial_symtab *ps
|
||||
= psf->find_pc_sect_psymtab (objfile, pc, section, msymbol);
|
||||
= psf->find_pc_sect_psymtab (&objfile, pc, section, msymbol);
|
||||
if (ps != NULL)
|
||||
{
|
||||
if (!printed_objfile_header)
|
||||
{
|
||||
outfile->printf ("\nPartial symtabs for objfile %s\n",
|
||||
objfile_name (objfile));
|
||||
objfile_name (&objfile));
|
||||
printed_objfile_header = 1;
|
||||
}
|
||||
dump_psymtab (objfile, ps, outfile);
|
||||
dump_psymtab (&objfile, ps, outfile);
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (partial_symtab *ps : psf->partial_symbols (objfile))
|
||||
for (partial_symtab *ps : psf->partial_symbols (&objfile))
|
||||
{
|
||||
int print_for_source = 0;
|
||||
|
||||
@@ -1318,10 +1318,10 @@ maintenance_print_psymbols (const char *args, int from_tty)
|
||||
if (!printed_objfile_header)
|
||||
{
|
||||
outfile->printf ("\nPartial symtabs for objfile %s\n",
|
||||
objfile_name (objfile));
|
||||
objfile_name (&objfile));
|
||||
printed_objfile_header = 1;
|
||||
}
|
||||
dump_psymtab (objfile, ps, outfile);
|
||||
dump_psymtab (&objfile, ps, outfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1346,21 +1346,21 @@ maintenance_info_psymtabs (const char *regexp, int from_tty)
|
||||
re_comp (regexp);
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
struct gdbarch *gdbarch = objfile->arch ();
|
||||
struct gdbarch *gdbarch = objfile.arch ();
|
||||
|
||||
/* We don't want to print anything for this objfile until we
|
||||
actually find a symtab whose name matches. */
|
||||
int printed_objfile_start = 0;
|
||||
|
||||
for (const auto &iter : objfile->qf)
|
||||
for (const auto &iter : objfile.qf)
|
||||
{
|
||||
psymbol_functions *psf
|
||||
= dynamic_cast<psymbol_functions *> (iter.get ());
|
||||
if (psf == nullptr)
|
||||
continue;
|
||||
for (partial_symtab *psymtab : psf->partial_symbols (objfile))
|
||||
for (partial_symtab *psymtab : psf->partial_symbols (&objfile))
|
||||
{
|
||||
QUIT;
|
||||
|
||||
@@ -1369,10 +1369,10 @@ maintenance_info_psymtabs (const char *regexp, int from_tty)
|
||||
{
|
||||
if (! printed_objfile_start)
|
||||
{
|
||||
gdb_printf ("{ objfile %s ", objfile_name (objfile));
|
||||
gdb_printf ("{ objfile %s ", objfile_name (&objfile));
|
||||
gdb_stdout->wrap_here (2);
|
||||
gdb_printf ("((struct objfile *) %s)\n",
|
||||
host_address_to_string (objfile));
|
||||
host_address_to_string (&objfile));
|
||||
printed_objfile_start = 1;
|
||||
}
|
||||
|
||||
@@ -1382,16 +1382,16 @@ maintenance_info_psymtabs (const char *regexp, int from_tty)
|
||||
host_address_to_string (psymtab));
|
||||
|
||||
gdb_printf (" readin %s\n",
|
||||
psymtab->readin_p (objfile) ? "yes" : "no");
|
||||
psymtab->readin_p (&objfile) ? "yes" : "no");
|
||||
gdb_printf (" fullname %s\n",
|
||||
psymtab->fullname
|
||||
? psymtab->fullname : "(null)");
|
||||
gdb_printf (" text addresses ");
|
||||
gdb_puts (paddress (gdbarch,
|
||||
psymtab->text_low (objfile)));
|
||||
psymtab->text_low (&objfile)));
|
||||
gdb_printf (" -- ");
|
||||
gdb_puts (paddress (gdbarch,
|
||||
psymtab->text_high (objfile)));
|
||||
psymtab->text_high (&objfile)));
|
||||
gdb_printf ("\n");
|
||||
gdb_printf (" globals ");
|
||||
if (!psymtab->global_psymbols.empty ())
|
||||
@@ -1455,33 +1455,33 @@ maintenance_check_psymtabs (const char *ignore, int from_tty)
|
||||
const struct blockvector *bv;
|
||||
const struct block *b;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (const auto &iter : objfile->qf)
|
||||
for (const auto &iter : objfile.qf)
|
||||
{
|
||||
psymbol_functions *psf
|
||||
= dynamic_cast<psymbol_functions *> (iter.get ());
|
||||
if (psf == nullptr)
|
||||
continue;
|
||||
|
||||
for (partial_symtab *ps : psf->partial_symbols (objfile))
|
||||
for (partial_symtab *ps : psf->partial_symbols (&objfile))
|
||||
{
|
||||
struct gdbarch *gdbarch = objfile->arch ();
|
||||
struct gdbarch *gdbarch = objfile.arch ();
|
||||
|
||||
/* We don't call psymtab_to_symtab here because that may cause symtab
|
||||
expansion. When debugging a problem it helps if checkers leave
|
||||
things unchanged. */
|
||||
cust = ps->get_compunit_symtab (objfile);
|
||||
cust = ps->get_compunit_symtab (&objfile);
|
||||
|
||||
/* First do some checks that don't require the associated symtab. */
|
||||
if (ps->text_high (objfile) < ps->text_low (objfile))
|
||||
if (ps->text_high (&objfile) < ps->text_low (&objfile))
|
||||
{
|
||||
gdb_printf ("Psymtab ");
|
||||
gdb_puts (ps->filename);
|
||||
gdb_printf (" covers bad range ");
|
||||
gdb_puts (paddress (gdbarch, ps->text_low (objfile)));
|
||||
gdb_puts (paddress (gdbarch, ps->text_low (&objfile)));
|
||||
gdb_printf (" - ");
|
||||
gdb_puts (paddress (gdbarch, ps->text_high (objfile)));
|
||||
gdb_puts (paddress (gdbarch, ps->text_high (&objfile)));
|
||||
gdb_printf ("\n");
|
||||
continue;
|
||||
}
|
||||
@@ -1529,15 +1529,15 @@ maintenance_check_psymtabs (const char *ignore, int from_tty)
|
||||
}
|
||||
}
|
||||
if (ps->unrelocated_text_high () != unrelocated_addr (0)
|
||||
&& (ps->text_low (objfile) < b->start ()
|
||||
|| ps->text_high (objfile) > b->end ()))
|
||||
&& (ps->text_low (&objfile) < b->start ()
|
||||
|| ps->text_high (&objfile) > b->end ()))
|
||||
{
|
||||
gdb_printf ("Psymtab ");
|
||||
gdb_puts (ps->filename);
|
||||
gdb_printf (" covers ");
|
||||
gdb_puts (paddress (gdbarch, ps->text_low (objfile)));
|
||||
gdb_puts (paddress (gdbarch, ps->text_low (&objfile)));
|
||||
gdb_printf (" - ");
|
||||
gdb_puts (paddress (gdbarch, ps->text_high (objfile)));
|
||||
gdb_puts (paddress (gdbarch, ps->text_high (&objfile)));
|
||||
gdb_printf (" but symtab covers only ");
|
||||
gdb_puts (paddress (gdbarch, b->start ()));
|
||||
gdb_printf (" - ");
|
||||
|
||||
@@ -98,9 +98,9 @@ search_pp_list (PyObject *list, PyObject *value)
|
||||
static PyObject *
|
||||
find_pretty_printer_from_objfiles (PyObject *value)
|
||||
{
|
||||
for (objfile *obj : current_program_space->objfiles ())
|
||||
for (objfile &obj : current_program_space->objfiles ())
|
||||
{
|
||||
gdbpy_ref<> objf = objfile_to_objfile_object (obj);
|
||||
gdbpy_ref<> objf = objfile_to_objfile_object (&obj);
|
||||
if (objf == NULL)
|
||||
{
|
||||
/* Ignore the error and continue. */
|
||||
|
||||
@@ -431,9 +431,9 @@ pspy_get_objfiles (PyObject *self_, PyObject *args)
|
||||
|
||||
if (self->pspace != NULL)
|
||||
{
|
||||
for (objfile *objf : self->pspace->objfiles ())
|
||||
for (objfile &objf : self->pspace->objfiles ())
|
||||
{
|
||||
gdbpy_ref<> item = objfile_to_objfile_object (objf);
|
||||
gdbpy_ref<> item = objfile_to_objfile_object (&objf);
|
||||
|
||||
if (item == nullptr
|
||||
|| PyList_Append (list.get (), item.get ()) == -1)
|
||||
|
||||
@@ -603,7 +603,7 @@ gdbpy_lookup_static_symbols (PyObject *self, PyObject *args, PyObject *kw)
|
||||
/* Expand any symtabs that contain potentially matching symbols. */
|
||||
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
auto callback = [&] (compunit_symtab *cust)
|
||||
{
|
||||
@@ -632,8 +632,8 @@ gdbpy_lookup_static_symbols (PyObject *self, PyObject *args, PyObject *kw)
|
||||
return true;
|
||||
};
|
||||
|
||||
if (!objfile->search (nullptr, &lookup_name, nullptr, callback,
|
||||
SEARCH_STATIC_BLOCK, flags))
|
||||
if (!objfile.search (nullptr, &lookup_name, nullptr, callback,
|
||||
SEARCH_STATIC_BLOCK, flags))
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,9 +141,9 @@ gdbpy_get_matching_xmethod_workers
|
||||
/* Gather debug method matchers registered with the object files.
|
||||
This could be done differently by iterating over each objfile's matcher
|
||||
list individually, but there's no data yet to show it's needed. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
gdbpy_ref<> py_objfile = objfile_to_objfile_object (objfile);
|
||||
gdbpy_ref<> py_objfile = objfile_to_objfile_object (&objfile);
|
||||
|
||||
if (py_objfile == NULL)
|
||||
{
|
||||
|
||||
@@ -3687,9 +3687,9 @@ svr4_solib_ops::iterate_over_objfiles_in_search_order
|
||||
if (debug_base == 0)
|
||||
debug_base = default_debug_base;
|
||||
|
||||
for (objfile *objfile : m_pspace->objfiles ())
|
||||
for (objfile &objfile : m_pspace->objfiles ())
|
||||
{
|
||||
if (checked_current_objfile && objfile == current_objfile)
|
||||
if (checked_current_objfile && &objfile == current_objfile)
|
||||
continue;
|
||||
|
||||
/* Try to determine the namespace into which objfile was loaded.
|
||||
@@ -3697,7 +3697,7 @@ svr4_solib_ops::iterate_over_objfiles_in_search_order
|
||||
If we fail, e.g. for manually added symbol files or for the main
|
||||
executable, we assume that they were added to the initial
|
||||
namespace. */
|
||||
const solib *solib = find_solib_for_objfile (objfile);
|
||||
const solib *solib = find_solib_for_objfile (&objfile);
|
||||
CORE_ADDR solib_base = find_debug_base_for_solib (solib);
|
||||
if (solib_base == 0)
|
||||
solib_base = default_debug_base;
|
||||
@@ -3706,7 +3706,7 @@ svr4_solib_ops::iterate_over_objfiles_in_search_order
|
||||
if (solib_base != debug_base)
|
||||
continue;
|
||||
|
||||
if (cb (objfile))
|
||||
if (cb (&objfile))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
10
gdb/solib.c
10
gdb/solib.c
@@ -480,8 +480,8 @@ solib_ops::iterate_over_objfiles_in_search_order
|
||||
(iterate_over_objfiles_in_search_order_cb_ftype cb,
|
||||
objfile *current_objfile) const
|
||||
{
|
||||
for (objfile *objfile : m_pspace->objfiles ())
|
||||
if (cb (objfile))
|
||||
for (objfile &objfile : m_pspace->objfiles ())
|
||||
if (cb (&objfile))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -644,10 +644,10 @@ solib_read_symbols (solib &so, symfile_add_flags flags)
|
||||
{
|
||||
/* Have we already loaded this shared object? */
|
||||
so.objfile = nullptr;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (objfile->addr_low == so.addr_low)
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
if (objfile.addr_low == so.addr_low)
|
||||
{
|
||||
so.objfile = objfile;
|
||||
so.objfile = &objfile;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
12
gdb/source.c
12
gdb/source.c
@@ -354,9 +354,9 @@ select_source_symtab ()
|
||||
|
||||
struct symtab *new_symtab = nullptr;
|
||||
|
||||
for (objfile *ofp : current_program_space->objfiles ())
|
||||
for (objfile &ofp : current_program_space->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cu : ofp->compunits ())
|
||||
for (compunit_symtab *cu : ofp.compunits ())
|
||||
{
|
||||
for (symtab *symtab : cu->filetabs ())
|
||||
{
|
||||
@@ -374,9 +374,9 @@ select_source_symtab ()
|
||||
if (new_symtab != nullptr)
|
||||
return;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
symtab *s = objfile->find_last_source_symtab ();
|
||||
symtab *s = objfile.find_last_source_symtab ();
|
||||
if (s)
|
||||
new_symtab = s;
|
||||
}
|
||||
@@ -437,8 +437,8 @@ void
|
||||
forget_cached_source_info (void)
|
||||
{
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
objfile->forget_cached_source_info ();
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
objfile.forget_cached_source_info ();
|
||||
|
||||
g_source_cache.clear ();
|
||||
last_source_visited = NULL;
|
||||
|
||||
@@ -835,17 +835,17 @@ static void
|
||||
set_debug_symfile (const char *args, int from_tty, struct cmd_list_element *c)
|
||||
{
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
if (debug_symfile)
|
||||
{
|
||||
if (!symfile_debug_installed (objfile))
|
||||
install_symfile_debug_logging (objfile);
|
||||
if (!symfile_debug_installed (&objfile))
|
||||
install_symfile_debug_logging (&objfile);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (symfile_debug_installed (objfile))
|
||||
uninstall_symfile_debug_logging (objfile);
|
||||
if (symfile_debug_installed (&objfile))
|
||||
uninstall_symfile_debug_logging (&objfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
168
gdb/symfile.c
168
gdb/symfile.c
@@ -2416,14 +2416,14 @@ remove_symbol_file_command (const char *args, int from_tty)
|
||||
|
||||
CORE_ADDR addr = parse_and_eval_address (args);
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if ((objfile->flags & OBJF_USERLOADED) != 0
|
||||
&& (objfile->flags & OBJF_SHARED) != 0
|
||||
&& objfile->pspace () == current_program_space
|
||||
&& is_addr_in_objfile (addr, objfile))
|
||||
if ((objfile.flags & OBJF_USERLOADED) != 0
|
||||
&& (objfile.flags & OBJF_SHARED) != 0
|
||||
&& objfile.pspace () == current_program_space
|
||||
&& is_addr_in_objfile (addr, &objfile))
|
||||
{
|
||||
objf = objfile;
|
||||
objf = &objfile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2434,14 +2434,14 @@ remove_symbol_file_command (const char *args, int from_tty)
|
||||
if (filename.empty ())
|
||||
error (_("remove-symbol-file: no symbol file provided"));
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if ((objfile->flags & OBJF_USERLOADED) != 0
|
||||
&& (objfile->flags & OBJF_SHARED) != 0
|
||||
&& objfile->pspace () == current_program_space
|
||||
&& filename_cmp (filename.c_str (), objfile_name (objfile)) == 0)
|
||||
if ((objfile.flags & OBJF_USERLOADED) != 0
|
||||
&& (objfile.flags & OBJF_SHARED) != 0
|
||||
&& objfile.pspace () == current_program_space
|
||||
&& filename_cmp (filename.c_str (), objfile_name (&objfile)) == 0)
|
||||
{
|
||||
objf = objfile;
|
||||
objf = &objfile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2473,13 +2473,13 @@ reread_symbols (int from_tty)
|
||||
indicate when the executable was last reloaded. */
|
||||
reopen_exec_file ();
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if (objfile->obfd.get () == NULL)
|
||||
if (objfile.obfd.get () == NULL)
|
||||
continue;
|
||||
|
||||
/* Separate debug objfiles are handled in the main objfile. */
|
||||
if (objfile->separate_debug_objfile_backlink)
|
||||
if (objfile.separate_debug_objfile_backlink)
|
||||
continue;
|
||||
|
||||
/* When a in-memory BFD is initially created, it's mtime (as
|
||||
@@ -2491,11 +2491,11 @@ reread_symbols (int from_tty)
|
||||
about reloading BFDs that changed on disk.
|
||||
|
||||
Just skip any in-memory BFD. */
|
||||
if (objfile->obfd.get ()->flags & BFD_IN_MEMORY)
|
||||
if (objfile.obfd.get ()->flags & BFD_IN_MEMORY)
|
||||
continue;
|
||||
|
||||
struct stat new_statbuf;
|
||||
int res = gdb_bfd_stat (objfile->obfd.get (), &new_statbuf);
|
||||
int res = gdb_bfd_stat (objfile.obfd.get (), &new_statbuf);
|
||||
if (res != 0)
|
||||
{
|
||||
/* If this object is from an archive (what you usually create
|
||||
@@ -2503,21 +2503,21 @@ reread_symbols (int from_tty)
|
||||
though a `shared library' on AIX is also an archive), then you
|
||||
should stat on the archive name, not member name. */
|
||||
const char *filename;
|
||||
if (objfile->obfd->my_archive)
|
||||
filename = bfd_get_filename (objfile->obfd->my_archive);
|
||||
if (objfile.obfd->my_archive)
|
||||
filename = bfd_get_filename (objfile.obfd->my_archive);
|
||||
else
|
||||
filename = objfile_name (objfile);
|
||||
filename = objfile_name (&objfile);
|
||||
|
||||
warning (_("`%ps' has disappeared; keeping its symbols."),
|
||||
styled_string (file_name_style.style (), filename));
|
||||
continue;
|
||||
}
|
||||
time_t new_modtime = new_statbuf.st_mtime;
|
||||
if (new_modtime != objfile->mtime)
|
||||
if (new_modtime != objfile.mtime)
|
||||
{
|
||||
gdb_printf (_("`%ps' has changed; re-reading symbols.\n"),
|
||||
styled_string (file_name_style.style (),
|
||||
objfile_name (objfile)));
|
||||
objfile_name (&objfile)));
|
||||
|
||||
/* There are various functions like symbol_file_add,
|
||||
symfile_bfd_open, syms_from_objfile, etc., which might
|
||||
@@ -2529,7 +2529,7 @@ reread_symbols (int from_tty)
|
||||
/* If we get an error, blow away this objfile (not sure if
|
||||
that is the correct response for things like shared
|
||||
libraries). */
|
||||
scoped_objfile_unlinker objfile_holder (objfile);
|
||||
scoped_objfile_unlinker objfile_holder (&objfile);
|
||||
|
||||
/* We need to do this whenever any symbols go away. */
|
||||
clear_symtab_users_cleanup defer_clear_users (0);
|
||||
@@ -2538,14 +2538,14 @@ reread_symbols (int from_tty)
|
||||
|
||||
/* Free the separate debug objfiles. It will be
|
||||
automatically recreated by sym_read. */
|
||||
free_objfile_separate_debug (objfile);
|
||||
free_objfile_separate_debug (&objfile);
|
||||
|
||||
/* Clear the stale source cache. */
|
||||
forget_cached_source_info ();
|
||||
|
||||
/* Remove any references to this objfile in the global
|
||||
value lists. */
|
||||
preserve_values (objfile);
|
||||
preserve_values (&objfile);
|
||||
|
||||
/* Nuke all the state that we will re-read. Much of the following
|
||||
code which sets things to NULL really is necessary to tell
|
||||
@@ -2553,78 +2553,78 @@ reread_symbols (int from_tty)
|
||||
|
||||
Try to keep the freeing order compatible with free_objfile. */
|
||||
|
||||
if (objfile->sf != NULL)
|
||||
if (objfile.sf != NULL)
|
||||
{
|
||||
(*objfile->sf->sym_finish) (objfile);
|
||||
(*objfile.sf->sym_finish) (&objfile);
|
||||
}
|
||||
|
||||
objfile->registry_fields.clear_registry ();
|
||||
objfile.registry_fields.clear_registry ();
|
||||
|
||||
/* Clean up any state BFD has sitting around. */
|
||||
{
|
||||
gdb_bfd_ref_ptr obfd = objfile->obfd;
|
||||
gdb_bfd_ref_ptr obfd = objfile.obfd;
|
||||
const char *obfd_filename;
|
||||
|
||||
obfd_filename = bfd_get_filename (objfile->obfd.get ());
|
||||
obfd_filename = bfd_get_filename (objfile.obfd.get ());
|
||||
/* Open the new BFD before freeing the old one, so that
|
||||
the filename remains live. */
|
||||
gdb_bfd_ref_ptr temp (gdb_bfd_open (obfd_filename, gnutarget));
|
||||
objfile->obfd = std::move (temp);
|
||||
if (objfile->obfd == NULL)
|
||||
objfile.obfd = std::move (temp);
|
||||
if (objfile.obfd == NULL)
|
||||
error (_("Can't open %s to read symbols."), obfd_filename);
|
||||
}
|
||||
|
||||
std::string original_name = objfile->original_name;
|
||||
std::string original_name = objfile.original_name;
|
||||
|
||||
/* bfd_openr sets cacheable to true, which is what we want. */
|
||||
if (!bfd_check_format (objfile->obfd.get (), bfd_object))
|
||||
error (_("Can't read symbols from %s: %s."), objfile_name (objfile),
|
||||
if (!bfd_check_format (objfile.obfd.get (), bfd_object))
|
||||
error (_("Can't read symbols from %s: %s."), objfile_name (&objfile),
|
||||
bfd_errmsg (bfd_get_error ()));
|
||||
|
||||
/* NB: after this call to obstack_free, objfiles_changed
|
||||
will need to be called (see discussion below). */
|
||||
obstack_free (&objfile->objfile_obstack, 0);
|
||||
objfile->sections_start = NULL;
|
||||
objfile->section_offsets.clear ();
|
||||
objfile->sect_index_bss = -1;
|
||||
objfile->sect_index_data = -1;
|
||||
objfile->sect_index_rodata = -1;
|
||||
objfile->sect_index_text = -1;
|
||||
objfile->compunit_symtabs = NULL;
|
||||
objfile->template_symbols = NULL;
|
||||
objfile->static_links.clear ();
|
||||
obstack_free (&objfile.objfile_obstack, 0);
|
||||
objfile.sections_start = NULL;
|
||||
objfile.section_offsets.clear ();
|
||||
objfile.sect_index_bss = -1;
|
||||
objfile.sect_index_data = -1;
|
||||
objfile.sect_index_rodata = -1;
|
||||
objfile.sect_index_text = -1;
|
||||
objfile.compunit_symtabs = NULL;
|
||||
objfile.template_symbols = NULL;
|
||||
objfile.static_links.clear ();
|
||||
|
||||
/* obstack_init also initializes the obstack so it is
|
||||
empty. We could use obstack_specify_allocation but
|
||||
gdb_obstack.h specifies the alloc/dealloc functions. */
|
||||
obstack_init (&objfile->objfile_obstack);
|
||||
obstack_init (&objfile.objfile_obstack);
|
||||
|
||||
/* set_objfile_per_bfd potentially allocates the per-bfd
|
||||
data on the objfile's obstack (if sharing data across
|
||||
multiple users is not possible), so it's important to
|
||||
do it *after* the obstack has been initialized. */
|
||||
set_objfile_per_bfd (objfile);
|
||||
set_objfile_per_bfd (&objfile);
|
||||
|
||||
objfile->original_name
|
||||
= obstack_strdup (&objfile->objfile_obstack, original_name);
|
||||
objfile.original_name
|
||||
= obstack_strdup (&objfile.objfile_obstack, original_name);
|
||||
|
||||
/* Reset the sym_fns pointer. The ELF reader can change it
|
||||
based on whether .gdb_index is present, and we need it to
|
||||
start over. PR symtab/15885 */
|
||||
objfile_set_sym_fns (objfile, find_sym_fns (objfile->obfd.get ()));
|
||||
objfile->qf.clear ();
|
||||
objfile_set_sym_fns (&objfile, find_sym_fns (objfile.obfd.get ()));
|
||||
objfile.qf.clear ();
|
||||
|
||||
build_objfile_section_table (objfile);
|
||||
build_objfile_section_table (&objfile);
|
||||
|
||||
/* What the hell is sym_new_init for, anyway? The concept of
|
||||
distinguishing between the main file and additional files
|
||||
in this way seems rather dubious. */
|
||||
if (objfile == current_program_space->symfile_object_file)
|
||||
if (&objfile == current_program_space->symfile_object_file)
|
||||
{
|
||||
(*objfile->sf->sym_new_init) (objfile);
|
||||
(*objfile.sf->sym_new_init) (&objfile);
|
||||
}
|
||||
|
||||
(*objfile->sf->sym_init) (objfile);
|
||||
(*objfile.sf->sym_init) (&objfile);
|
||||
clear_complaints ();
|
||||
|
||||
/* We are about to read new symbols and potentially also
|
||||
@@ -2644,24 +2644,24 @@ reread_symbols (int from_tty)
|
||||
objfiles_changed (current_program_space);
|
||||
|
||||
/* Recompute section offsets and section indices. */
|
||||
objfile->sf->sym_offsets (objfile, {});
|
||||
objfile.sf->sym_offsets (&objfile, {});
|
||||
|
||||
read_symbols (objfile, 0);
|
||||
read_symbols (&objfile, 0);
|
||||
|
||||
if ((objfile->flags & OBJF_READNOW))
|
||||
if ((objfile.flags & OBJF_READNOW))
|
||||
{
|
||||
const int mainline = objfile->flags & OBJF_MAINLINE;
|
||||
const int mainline = objfile.flags & OBJF_MAINLINE;
|
||||
const int should_print = (print_symbol_loading_p (from_tty, mainline, 1)
|
||||
&& readnow_symbol_files);
|
||||
if (should_print)
|
||||
gdb_printf (_("Expanding full symbols from %ps...\n"),
|
||||
styled_string (file_name_style.style (),
|
||||
objfile_name (objfile)));
|
||||
objfile_name (&objfile)));
|
||||
|
||||
objfile->expand_all_symtabs ();
|
||||
objfile.expand_all_symtabs ();
|
||||
}
|
||||
|
||||
if (!objfile->has_symbols ())
|
||||
if (!objfile.has_symbols ())
|
||||
{
|
||||
gdb_stdout->wrap_here (0);
|
||||
gdb_printf (_("(no debugging symbols found)\n"));
|
||||
@@ -2683,10 +2683,10 @@ reread_symbols (int from_tty)
|
||||
/* If the mtime has changed between the time we set new_modtime
|
||||
and now, we *want* this to be out of date, so don't call stat
|
||||
again now. */
|
||||
objfile->mtime = new_modtime;
|
||||
init_entry_point_info (objfile);
|
||||
objfile.mtime = new_modtime;
|
||||
init_entry_point_info (&objfile);
|
||||
|
||||
new_objfiles.push_back (objfile);
|
||||
new_objfiles.push_back (&objfile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3005,8 +3005,8 @@ section_is_overlay (struct obj_section *section)
|
||||
static void
|
||||
overlay_invalidate_all (program_space *pspace)
|
||||
{
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (obj_section § : objfile->sections ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
for (obj_section § : objfile.sections ())
|
||||
if (section_is_overlay (§))
|
||||
sect.ovly_mapped = -1;
|
||||
}
|
||||
@@ -3181,8 +3181,8 @@ find_pc_overlay (CORE_ADDR pc)
|
||||
|
||||
if (overlay_debugging)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile.sections ())
|
||||
if (section_is_overlay (&osect))
|
||||
{
|
||||
if (pc_in_mapped_range (pc, &osect))
|
||||
@@ -3208,8 +3208,8 @@ find_pc_mapped_section (CORE_ADDR pc)
|
||||
{
|
||||
if (overlay_debugging)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile.sections ())
|
||||
if (pc_in_mapped_range (pc, &osect) && section_is_mapped (&osect))
|
||||
return &osect;
|
||||
}
|
||||
@@ -3227,11 +3227,11 @@ list_overlays_command (const char *args, int from_tty)
|
||||
|
||||
if (overlay_debugging)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &osect : objfile.sections ())
|
||||
if (section_is_mapped (&osect))
|
||||
{
|
||||
struct gdbarch *gdbarch = objfile->arch ();
|
||||
struct gdbarch *gdbarch = objfile.arch ();
|
||||
const char *name;
|
||||
bfd_vma lma, vma;
|
||||
int size;
|
||||
@@ -3273,8 +3273,8 @@ map_overlay_command (const char *args, int from_tty)
|
||||
error (_("Argument required: name of an overlay section"));
|
||||
|
||||
/* First, find a section matching the user supplied argument. */
|
||||
for (objfile *obj_file : current_program_space->objfiles ())
|
||||
for (obj_section &sec : obj_file->sections ())
|
||||
for (objfile &obj_file : current_program_space->objfiles ())
|
||||
for (obj_section &sec : obj_file.sections ())
|
||||
if (!strcmp (bfd_section_name (sec.the_bfd_section), args))
|
||||
{
|
||||
/* Now, check to see if the section is an overlay. */
|
||||
@@ -3286,8 +3286,8 @@ map_overlay_command (const char *args, int from_tty)
|
||||
|
||||
/* Next, make a pass and unmap any sections that are
|
||||
overlapped by this new section: */
|
||||
for (objfile *objfile2 : current_program_space->objfiles ())
|
||||
for (obj_section &sec2 : objfile2->sections ())
|
||||
for (objfile &objfile2 : current_program_space->objfiles ())
|
||||
for (obj_section &sec2 : objfile2.sections ())
|
||||
if (sec2.ovly_mapped && &sec != &sec2 && sections_overlap (&sec,
|
||||
&sec2))
|
||||
{
|
||||
@@ -3317,8 +3317,8 @@ unmap_overlay_command (const char *args, int from_tty)
|
||||
error (_("Argument required: name of an overlay section"));
|
||||
|
||||
/* First, find a section matching the user supplied argument. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section &sec : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section &sec : objfile.sections ())
|
||||
if (!strcmp (bfd_section_name (sec.the_bfd_section), args))
|
||||
{
|
||||
if (!sec.ovly_mapped)
|
||||
@@ -3576,8 +3576,8 @@ simple_overlay_update (struct obj_section *osect)
|
||||
return;
|
||||
|
||||
/* Now may as well update all sections, even if only one was requested. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile.sections ())
|
||||
if (section_is_overlay (§))
|
||||
{
|
||||
int i;
|
||||
@@ -3762,8 +3762,8 @@ symfile_free_objfile (struct objfile *objfile)
|
||||
void
|
||||
map_symbol_filenames (symbol_filename_listener fun, bool need_fullname)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
objfile->map_symbol_filenames (fun, need_fullname);
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
objfile.map_symbol_filenames (fun, need_fullname);
|
||||
}
|
||||
|
||||
#if GDB_SELF_TEST
|
||||
|
||||
@@ -55,25 +55,25 @@ print_objfile_statistics (void)
|
||||
int i, linetables, blockvectors;
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
QUIT;
|
||||
gdb_printf (_("Statistics for '%s':\n"), objfile_name (objfile));
|
||||
if (OBJSTAT (objfile, n_stabs) > 0)
|
||||
gdb_printf (_("Statistics for '%s':\n"), objfile_name (&objfile));
|
||||
if (OBJSTAT ((&objfile), n_stabs) > 0)
|
||||
gdb_printf (_(" Number of \"stab\" symbols read: %d\n"),
|
||||
OBJSTAT (objfile, n_stabs));
|
||||
if (objfile->per_bfd->n_minsyms > 0)
|
||||
OBJSTAT ((&objfile), n_stabs));
|
||||
if (objfile.per_bfd->n_minsyms > 0)
|
||||
gdb_printf (_(" Number of \"minimal\" symbols read: %d\n"),
|
||||
objfile->per_bfd->n_minsyms);
|
||||
if (OBJSTAT (objfile, n_syms) > 0)
|
||||
objfile.per_bfd->n_minsyms);
|
||||
if (OBJSTAT ((&objfile), n_syms) > 0)
|
||||
gdb_printf (_(" Number of \"full\" symbols read: %d\n"),
|
||||
OBJSTAT (objfile, n_syms));
|
||||
if (OBJSTAT (objfile, n_types) > 0)
|
||||
OBJSTAT ((&objfile), n_syms));
|
||||
if (OBJSTAT ((&objfile), n_types) > 0)
|
||||
gdb_printf (_(" Number of \"types\" defined: %d\n"),
|
||||
OBJSTAT (objfile, n_types));
|
||||
OBJSTAT ((&objfile), n_types));
|
||||
|
||||
i = linetables = 0;
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
for (symtab *s : cu->filetabs ())
|
||||
{
|
||||
@@ -82,32 +82,32 @@ print_objfile_statistics (void)
|
||||
linetables++;
|
||||
}
|
||||
}
|
||||
blockvectors = std::distance (objfile->compunits ().begin (),
|
||||
objfile->compunits ().end ());
|
||||
blockvectors = std::distance (objfile.compunits ().begin (),
|
||||
objfile.compunits ().end ());
|
||||
gdb_printf (_(" Number of symbol tables: %d\n"), i);
|
||||
gdb_printf (_(" Number of symbol tables with line tables: %d\n"),
|
||||
linetables);
|
||||
gdb_printf (_(" Number of symbol tables with blockvectors: %d\n"),
|
||||
blockvectors);
|
||||
|
||||
objfile->print_stats (false);
|
||||
objfile.print_stats (false);
|
||||
|
||||
if (OBJSTAT (objfile, sz_strtab) > 0)
|
||||
if (OBJSTAT ((&objfile), sz_strtab) > 0)
|
||||
gdb_printf (_(" Space used by string tables: %d\n"),
|
||||
OBJSTAT (objfile, sz_strtab));
|
||||
OBJSTAT ((&objfile), sz_strtab));
|
||||
gdb_printf (_(" Total memory used for objfile obstack: %s\n"),
|
||||
pulongest (obstack_memory_used (&objfile
|
||||
->objfile_obstack)));
|
||||
.objfile_obstack)));
|
||||
gdb_printf (_(" Total memory used for BFD obstack: %s\n"),
|
||||
pulongest (obstack_memory_used (&objfile->per_bfd
|
||||
pulongest (obstack_memory_used (&objfile.per_bfd
|
||||
->storage_obstack)));
|
||||
|
||||
gdb_printf (_(" Total memory used for string cache: %d\n"),
|
||||
objfile->per_bfd->string_cache.memory_used ());
|
||||
objfile.per_bfd->string_cache.memory_used ());
|
||||
gdb_printf (_("Byte cache statistics for '%s':\n"),
|
||||
objfile_name (objfile));
|
||||
objfile->per_bfd->string_cache.print_statistics ("string cache");
|
||||
objfile->print_stats (true);
|
||||
objfile_name (&objfile));
|
||||
objfile.per_bfd->string_cache.print_statistics ("string cache");
|
||||
objfile.print_stats (true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -451,18 +451,18 @@ maintenance_print_symbols (const char *args, int from_tty)
|
||||
{
|
||||
int found = 0;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
int print_for_objfile = 1;
|
||||
|
||||
if (objfile_arg != NULL)
|
||||
print_for_objfile
|
||||
= compare_filenames_for_search (objfile_name (objfile),
|
||||
= compare_filenames_for_search (objfile_name (&objfile),
|
||||
objfile_arg);
|
||||
if (!print_for_objfile)
|
||||
continue;
|
||||
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
for (symtab *s : cu->filetabs ())
|
||||
{
|
||||
@@ -701,12 +701,12 @@ maintenance_print_msymbols (const char *args, int from_tty)
|
||||
outfile = &arg_outfile;
|
||||
}
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
QUIT;
|
||||
if (objfile_arg == NULL
|
||||
|| compare_filenames_for_search (objfile_name (objfile), objfile_arg))
|
||||
dump_msymbols (objfile, outfile);
|
||||
|| compare_filenames_for_search (objfile_name (&objfile), objfile_arg))
|
||||
dump_msymbols (&objfile, outfile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -719,12 +719,12 @@ maintenance_print_objfiles (const char *regexp, int from_tty)
|
||||
re_comp (regexp);
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
QUIT;
|
||||
if (! regexp
|
||||
|| re_exec (objfile_name (objfile)))
|
||||
dump_objfile (objfile);
|
||||
|| re_exec (objfile_name (&objfile)))
|
||||
dump_objfile (&objfile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -739,13 +739,13 @@ maintenance_info_symtabs (const char *regexp, int from_tty)
|
||||
re_comp (regexp);
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
/* We don't want to print anything for this objfile until we
|
||||
actually find a symtab whose name matches. */
|
||||
int printed_objfile_start = 0;
|
||||
|
||||
for (compunit_symtab *cust : objfile->compunits ())
|
||||
for (compunit_symtab *cust : objfile.compunits ())
|
||||
{
|
||||
int printed_compunit_symtab_start = 0;
|
||||
|
||||
@@ -758,10 +758,10 @@ maintenance_info_symtabs (const char *regexp, int from_tty)
|
||||
{
|
||||
if (! printed_objfile_start)
|
||||
{
|
||||
gdb_printf ("{ objfile %s ", objfile_name (objfile));
|
||||
gdb_printf ("{ objfile %s ", objfile_name (&objfile));
|
||||
gdb_stdout->wrap_here (2);
|
||||
gdb_printf ("((struct objfile *) %s)\n",
|
||||
host_address_to_string (objfile));
|
||||
host_address_to_string (&objfile));
|
||||
printed_objfile_start = 1;
|
||||
}
|
||||
if (! printed_compunit_symtab_start)
|
||||
@@ -844,13 +844,13 @@ static void
|
||||
maintenance_check_symtabs (const char *ignore, int from_tty)
|
||||
{
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
/* We don't want to print anything for this objfile until we
|
||||
actually find something worth printing. */
|
||||
int printed_objfile_start = 0;
|
||||
|
||||
for (compunit_symtab *cust : objfile->compunits ())
|
||||
for (compunit_symtab *cust : objfile.compunits ())
|
||||
{
|
||||
int found_something = 0;
|
||||
struct symtab *symtab = cust->primary_filetab ();
|
||||
@@ -865,10 +865,10 @@ maintenance_check_symtabs (const char *ignore, int from_tty)
|
||||
{
|
||||
if (! printed_objfile_start)
|
||||
{
|
||||
gdb_printf ("{ objfile %s ", objfile_name (objfile));
|
||||
gdb_printf ("{ objfile %s ", objfile_name (&objfile));
|
||||
gdb_stdout->wrap_here (2);
|
||||
gdb_printf ("((struct objfile *) %s)\n",
|
||||
host_address_to_string (objfile));
|
||||
host_address_to_string (&objfile));
|
||||
printed_objfile_start = 1;
|
||||
}
|
||||
gdb_printf (" { symtab %s\n",
|
||||
@@ -908,8 +908,8 @@ maintenance_expand_symtabs (const char *args, int from_tty)
|
||||
if (regexp == nullptr)
|
||||
{
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
objfile->expand_all_symtabs ();
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
objfile.expand_all_symtabs ();
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -917,8 +917,8 @@ maintenance_expand_symtabs (const char *args, int from_tty)
|
||||
re_comp (regexp);
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
objfile->search
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
objfile.search
|
||||
([&] (const char *filename, bool basenames)
|
||||
{
|
||||
/* KISS: Only apply the regexp to the complete file name. */
|
||||
@@ -1028,9 +1028,9 @@ maintenance_info_line_tables (const char *regexp, int from_tty)
|
||||
re_comp (regexp);
|
||||
|
||||
for (struct program_space *pspace : program_spaces)
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cust : objfile->compunits ())
|
||||
for (compunit_symtab *cust : objfile.compunits ())
|
||||
{
|
||||
for (symtab *symtab : cust->filetabs ())
|
||||
{
|
||||
|
||||
98
gdb/symtab.c
98
gdb/symtab.c
@@ -678,16 +678,16 @@ iterate_over_symtabs (program_space *pspace, const char *name,
|
||||
gdb_assert (IS_ABSOLUTE_PATH (real_path.get ()));
|
||||
}
|
||||
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
if (iterate_over_some_symtabs (name, real_path.get (),
|
||||
objfile->compunit_symtabs, nullptr,
|
||||
objfile.compunit_symtabs, nullptr,
|
||||
callback))
|
||||
return;
|
||||
|
||||
/* Same search rules as above apply here, but now we look through the
|
||||
psymtabs. */
|
||||
for (objfile *objfile : pspace->objfiles ())
|
||||
if (objfile->map_symtabs_matching_filename (name, real_path.get (),
|
||||
for (objfile &objfile : pspace->objfiles ())
|
||||
if (objfile.map_symtabs_matching_filename (name, real_path.get (),
|
||||
callback))
|
||||
return;
|
||||
}
|
||||
@@ -1204,10 +1204,10 @@ matching_obj_sections (struct obj_section *obj_first,
|
||||
/* Otherwise check that they are in corresponding objfiles. */
|
||||
|
||||
struct objfile *obj = NULL;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (objfile->obfd == first->owner)
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
if (objfile.obfd == first->owner)
|
||||
{
|
||||
obj = objfile;
|
||||
obj = &objfile;
|
||||
break;
|
||||
}
|
||||
gdb_assert (obj != NULL);
|
||||
@@ -2713,9 +2713,9 @@ basic_lookup_transparent_type (const char *name, domain_search_flags flags)
|
||||
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
|
||||
|
||||
/* Search all the global symbols. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
t = basic_lookup_transparent_type_quick (objfile, GLOBAL_BLOCK,
|
||||
t = basic_lookup_transparent_type_quick (&objfile, GLOBAL_BLOCK,
|
||||
flags, lookup_name);
|
||||
if (t)
|
||||
return t;
|
||||
@@ -2723,9 +2723,9 @@ basic_lookup_transparent_type (const char *name, domain_search_flags flags)
|
||||
|
||||
/* Now search the static file-level symbols. Not strictly correct,
|
||||
but more useful than an error. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
t = basic_lookup_transparent_type_quick (objfile, STATIC_BLOCK,
|
||||
t = basic_lookup_transparent_type_quick (&objfile, STATIC_BLOCK,
|
||||
flags, lookup_name);
|
||||
if (t)
|
||||
return t;
|
||||
@@ -2804,9 +2804,9 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
|
||||
It also happens for objfiles that have their functions reordered.
|
||||
For these, the symtab we are looking for is not necessarily read in. */
|
||||
|
||||
for (objfile *obj_file : current_program_space->objfiles ())
|
||||
for (objfile &obj_file : current_program_space->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cust : obj_file->compunits ())
|
||||
for (compunit_symtab *cust : obj_file.compunits ())
|
||||
{
|
||||
const struct blockvector *bv = cust->blockvector ();
|
||||
const struct block *global_block = bv->global_block ();
|
||||
@@ -2837,8 +2837,8 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
|
||||
stabs and coff debugging info, we continue on if a psymtab
|
||||
can't be found. */
|
||||
struct compunit_symtab *result
|
||||
= obj_file->find_pc_sect_compunit_symtab (msymbol, pc,
|
||||
section, 0);
|
||||
= obj_file.find_pc_sect_compunit_symtab (msymbol, pc,
|
||||
section, 0);
|
||||
if (result != nullptr)
|
||||
return result;
|
||||
|
||||
@@ -2853,7 +2853,7 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
|
||||
const struct block *b = bv->block (b_index);
|
||||
for (struct symbol *sym : block_iterator_range (b))
|
||||
{
|
||||
if (matching_obj_sections (sym->obj_section (obj_file),
|
||||
if (matching_obj_sections (sym->obj_section (&obj_file),
|
||||
section))
|
||||
{
|
||||
found_sym = sym;
|
||||
@@ -2877,10 +2877,10 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
|
||||
|
||||
/* Not found in symtabs, search the "quick" symtabs (e.g. psymtabs). */
|
||||
|
||||
for (objfile *objf : current_program_space->objfiles ())
|
||||
for (objfile &objf : current_program_space->objfiles ())
|
||||
{
|
||||
struct compunit_symtab *result
|
||||
= objf->find_pc_sect_compunit_symtab (msymbol, pc, section, 1);
|
||||
= objf.find_pc_sect_compunit_symtab (msymbol, pc, section, 1);
|
||||
if (result != NULL)
|
||||
return result;
|
||||
}
|
||||
@@ -2923,13 +2923,13 @@ find_symbol_at_address (CORE_ADDR address)
|
||||
return nullptr;
|
||||
};
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
/* If this objfile was read with -readnow, then we need to
|
||||
search the symtabs directly. */
|
||||
if ((objfile->flags & OBJF_READNOW) != 0)
|
||||
if ((objfile.flags & OBJF_READNOW) != 0)
|
||||
{
|
||||
for (compunit_symtab *symtab : objfile->compunits ())
|
||||
for (compunit_symtab *symtab : objfile.compunits ())
|
||||
{
|
||||
struct symbol *sym = search_symtab (symtab, address);
|
||||
if (sym != nullptr)
|
||||
@@ -2939,7 +2939,7 @@ find_symbol_at_address (CORE_ADDR address)
|
||||
else
|
||||
{
|
||||
struct compunit_symtab *symtab
|
||||
= objfile->find_compunit_symtab_by_address (address);
|
||||
= objfile.find_compunit_symtab_by_address (address);
|
||||
if (symtab != NULL)
|
||||
{
|
||||
struct symbol *sym = search_symtab (symtab, address);
|
||||
@@ -3366,12 +3366,12 @@ find_line_symtab (symtab *sym_tab, int line, int *index)
|
||||
else
|
||||
best = 0;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
objfile->expand_symtabs_with_fullname (symtab_to_fullname (sym_tab));
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
objfile.expand_symtabs_with_fullname (symtab_to_fullname (sym_tab));
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
for (symtab *s : cu->filetabs ())
|
||||
{
|
||||
@@ -4571,19 +4571,19 @@ info_sources_worker (struct ui_out *uiout,
|
||||
|
||||
gdb_assert (group_by_objfile || uiout->is_mi_like_p ());
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
if (group_by_objfile)
|
||||
{
|
||||
output_tuple.emplace (uiout, nullptr);
|
||||
uiout->field_string ("filename", objfile_name (objfile),
|
||||
uiout->field_string ("filename", objfile_name (&objfile),
|
||||
file_name_style.style ());
|
||||
uiout->text (":\n");
|
||||
bool debug_fully_readin = !objfile->has_unexpanded_symtabs ();
|
||||
bool debug_fully_readin = !objfile.has_unexpanded_symtabs ();
|
||||
if (uiout->is_mi_like_p ())
|
||||
{
|
||||
const char *debug_info_state;
|
||||
if (objfile->has_symbols ())
|
||||
if (objfile.has_symbols ())
|
||||
{
|
||||
if (debug_fully_readin)
|
||||
debug_info_state = "fully-read";
|
||||
@@ -4599,14 +4599,14 @@ info_sources_worker (struct ui_out *uiout,
|
||||
if (!debug_fully_readin)
|
||||
uiout->text ("(Full debug information has not yet been read "
|
||||
"for this file.)\n");
|
||||
if (!objfile->has_symbols ())
|
||||
if (!objfile.has_symbols ())
|
||||
uiout->text ("(Objfile has no debug information.)\n");
|
||||
uiout->text ("\n");
|
||||
}
|
||||
sources_list.emplace (uiout, "sources");
|
||||
}
|
||||
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
for (symtab *s : cu->filetabs ())
|
||||
{
|
||||
@@ -4618,7 +4618,7 @@ info_sources_worker (struct ui_out *uiout,
|
||||
|
||||
if (group_by_objfile)
|
||||
{
|
||||
objfile->map_symbol_filenames (data, true /* need_fullname */);
|
||||
objfile.map_symbol_filenames (data, true /* need_fullname */);
|
||||
if (data.printed_filename_p ())
|
||||
uiout->text ("\n\n");
|
||||
data.reset_output ();
|
||||
@@ -5034,17 +5034,17 @@ global_symbol_searcher::search () const
|
||||
|
||||
bool found_msymbol = false;
|
||||
std::set<symbol_search> result_set;
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
/* Expand symtabs within objfile that possibly contain matching
|
||||
symbols. */
|
||||
found_msymbol |= expand_symtabs (objfile, preg);
|
||||
found_msymbol |= expand_symtabs (&objfile, preg);
|
||||
|
||||
/* Find matching symbols within OBJFILE and add them in to the
|
||||
RESULT_SET set. Use a set here so that we can easily detect
|
||||
duplicates as we go, and can therefore track how many unique
|
||||
matches we have found so far. */
|
||||
if (!add_matching_symbols (objfile, preg, treg, &result_set))
|
||||
if (!add_matching_symbols (&objfile, preg, treg, &result_set))
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5063,8 +5063,8 @@ global_symbol_searcher::search () const
|
||||
{
|
||||
gdb_assert ((m_kind & (SEARCH_VAR_DOMAIN | SEARCH_FUNCTION_DOMAIN))
|
||||
!= 0);
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
if (!add_matching_msymbols (objfile, preg, &result))
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
if (!add_matching_msymbols (&objfile, preg, &result))
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -5978,9 +5978,9 @@ default_collect_symbol_completion_matches_break_on
|
||||
|
||||
if (code == TYPE_CODE_UNDEF)
|
||||
{
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (minimal_symbol *msymbol : objfile->msymbols ())
|
||||
for (minimal_symbol *msymbol : objfile.msymbols ())
|
||||
{
|
||||
QUIT;
|
||||
|
||||
@@ -5997,11 +5997,11 @@ default_collect_symbol_completion_matches_break_on
|
||||
}
|
||||
|
||||
/* Add completions for all currently loaded symbol tables. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
/* Look through the partial symtabs for all symbols which begin by
|
||||
matching SYM_TEXT. Expand all CUs that you find to the list. */
|
||||
objfile->search
|
||||
objfile.search
|
||||
(nullptr, &lookup_name, nullptr,
|
||||
[&] (compunit_symtab *symtab)
|
||||
{
|
||||
@@ -6287,9 +6287,9 @@ make_source_files_completion_list (const char *text)
|
||||
|
||||
filename_seen_cache filenames_seen;
|
||||
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
for (compunit_symtab *cu : objfile->compunits ())
|
||||
for (compunit_symtab *cu : objfile.compunits ())
|
||||
{
|
||||
for (symtab *s : cu->filetabs ())
|
||||
{
|
||||
@@ -6385,15 +6385,15 @@ find_main_name (void)
|
||||
relies on the order of objfile creation -- which still isn't
|
||||
guaranteed to get the correct answer, but is just probably more
|
||||
accurate. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
{
|
||||
objfile->compute_main_name ();
|
||||
objfile.compute_main_name ();
|
||||
|
||||
if (objfile->per_bfd->name_of_main != NULL)
|
||||
if (objfile.per_bfd->name_of_main != NULL)
|
||||
{
|
||||
set_main_name (pspace,
|
||||
objfile->per_bfd->name_of_main,
|
||||
objfile->per_bfd->language_of_main);
|
||||
objfile.per_bfd->name_of_main,
|
||||
objfile.per_bfd->language_of_main);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -922,10 +922,10 @@ windows_solib_ops::iterate_over_objfiles_in_search_order
|
||||
return;
|
||||
}
|
||||
|
||||
for (objfile *objfile : m_pspace->objfiles ())
|
||||
if (objfile != current_objfile)
|
||||
for (objfile &objfile : m_pspace->objfiles ())
|
||||
if (&objfile != current_objfile)
|
||||
{
|
||||
if (cb (objfile))
|
||||
if (cb (&objfile))
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -961,8 +961,8 @@ z80_overlay_update_1 (struct obj_section *osect)
|
||||
i = 0;
|
||||
|
||||
/* we have interest for sections with same VMA */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile.sections ())
|
||||
if (section_is_overlay (§))
|
||||
{
|
||||
sect.ovly_mapped = (lma == bfd_section_lma (sect.the_bfd_section));
|
||||
@@ -984,8 +984,8 @@ z80_overlay_update (struct obj_section *osect)
|
||||
return;
|
||||
|
||||
/* Update all sections, even if only one was requested. */
|
||||
for (objfile *objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile->sections ())
|
||||
for (objfile &objfile : current_program_space->objfiles ())
|
||||
for (obj_section § : objfile.sections ())
|
||||
{
|
||||
if (!section_is_overlay (§))
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user