aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/auxv.c6
-rw-r--r--gdb/avr-tdep.c6
-rw-r--r--gdb/breakpoint.c12
-rw-r--r--gdb/corefile.c4
-rw-r--r--gdb/elfread.c14
-rw-r--r--gdb/eval.c5
-rw-r--r--gdb/exec.c2
-rw-r--r--gdb/fbsd-tdep.c2
-rw-r--r--gdb/frame.c5
-rw-r--r--gdb/gnu-v3-abi.c5
-rw-r--r--gdb/ia64-tdep.c4
-rw-r--r--gdb/ia64-vms-tdep.c3
-rw-r--r--gdb/infcall.c9
-rw-r--r--gdb/infcmd.c14
-rw-r--r--gdb/inferior.c2
-rw-r--r--gdb/infrun.c16
-rw-r--r--gdb/linespec.c3
-rw-r--r--gdb/linux-tdep.c21
-rw-r--r--gdb/maint.c3
-rw-r--r--gdb/mi/mi-main.c7
-rw-r--r--gdb/minsyms.c6
-rw-r--r--gdb/ppc-linux-nat.c19
-rw-r--r--gdb/procfs.c3
-rw-r--r--gdb/regcache.c2
-rw-r--r--gdb/remote.c19
-rw-r--r--gdb/rs6000-tdep.c3
-rw-r--r--gdb/s390-linux-nat.c2
-rw-r--r--gdb/s390-tdep.c3
-rw-r--r--gdb/solib-aix.c3
-rw-r--r--gdb/solib-darwin.c3
-rw-r--r--gdb/solib-dsbt.c6
-rw-r--r--gdb/solib-svr4.c34
-rw-r--r--gdb/solib-target.c5
-rw-r--r--gdb/sparc-tdep.c2
-rw-r--r--gdb/sparc64-tdep.c6
-rw-r--r--gdb/symfile.c6
-rw-r--r--gdb/symtab.c6
-rw-r--r--gdb/target-descriptions.c6
-rw-r--r--gdb/target-memory.c5
-rw-r--r--gdb/target.c468
-rw-r--r--gdb/target.h5
-rw-r--r--gdb/tracefile-tfile.c2
-rw-r--r--gdb/tracepoint.c3
-rw-r--r--gdb/valops.c5
-rw-r--r--gdb/valprint.c6
-rw-r--r--gdb/value.c4
-rw-r--r--gdb/windows-tdep.c2
48 files changed, 454 insertions, 329 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a145925..a548c58 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2021-03-24 Simon Marchi <simon.marchi@polymtl.ca>
+ * target.h (current_top_target): Remove, make callers use the
+ current inferior instead.
+ * target.c (current_top_target): Remove.
+
+2021-03-24 Simon Marchi <simon.marchi@polymtl.ca>
+
* target.h (target_shortname): Change to function declaration.
(target_longname): Likewise.
(target_attach_no_wait): Likewise.
diff --git a/gdb/auxv.c b/gdb/auxv.c
index f13f90b..6507df1 100644
--- a/gdb/auxv.c
+++ b/gdb/auxv.c
@@ -320,7 +320,8 @@ target_auxv_parse (gdb_byte **readptr,
if (gdbarch_auxv_parse_p (gdbarch))
return gdbarch_auxv_parse (gdbarch, readptr, endptr, typep, valp);
- return current_top_target ()->auxv_parse (readptr, endptr, typep, valp);
+ return current_inferior ()->top_target ()->auxv_parse (readptr, endptr,
+ typep, valp);
}
@@ -580,7 +581,8 @@ info_auxv_command (const char *cmd, int from_tty)
error (_("The program has no auxiliary information now."));
else
{
- int ents = fprint_target_auxv (gdb_stdout, current_top_target ());
+ int ents = fprint_target_auxv (gdb_stdout,
+ current_inferior ()->top_target ());
if (ents < 0)
error (_("No auxiliary vector found, or failed reading it."));
diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
index 815c6d4..018b18f 100644
--- a/gdb/avr-tdep.c
+++ b/gdb/avr-tdep.c
@@ -1561,7 +1561,8 @@ avr_io_reg_read_command (const char *args, int from_tty)
/* Find out how many io registers the target has. */
gdb::optional<gdb::byte_vector> buf
- = target_read_alloc (current_top_target (), TARGET_OBJECT_AVR, "avr.io_reg");
+ = target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_AVR, "avr.io_reg");
if (!buf)
{
@@ -1595,7 +1596,8 @@ avr_io_reg_read_command (const char *args, int from_tty)
j = nreg - i; /* last block is less than 8 registers */
snprintf (query, sizeof (query) - 1, "avr.io_reg:%x,%x", i, j);
- buf = target_read_alloc (current_top_target (), TARGET_OBJECT_AVR, query);
+ buf = target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_AVR, query);
if (!buf)
{
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index de1e79b..16cf797 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -3598,8 +3598,8 @@ create_exception_master_breakpoint_hook (objfile *objfile)
}
addr = BMSYMBOL_VALUE_ADDRESS (bp_objfile_data->exception_msym);
- addr = gdbarch_convert_from_func_ptr_addr (gdbarch, addr,
- current_top_target ());
+ addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, addr, current_inferior ()->top_target ());
b = create_internal_breakpoint (gdbarch, addr, bp_exception_master,
&internal_breakpoint_ops);
initialize_explicit_location (&explicit_loc);
@@ -4869,7 +4869,7 @@ watchpoints_triggered (struct target_waitstatus *ws)
return 0;
}
- if (!target_stopped_data_address (current_top_target (), &addr))
+ if (!target_stopped_data_address (current_inferior ()->top_target (), &addr))
{
/* We were stopped by a watchpoint, but we don't know where.
Mark all watchpoints as unknown. */
@@ -4909,9 +4909,9 @@ watchpoints_triggered (struct target_waitstatus *ws)
}
}
/* Exact match not required. Within range is sufficient. */
- else if (target_watchpoint_addr_within_range (current_top_target (),
- addr, loc->address,
- loc->length))
+ else if (target_watchpoint_addr_within_range
+ (current_inferior ()->top_target (), addr, loc->address,
+ loc->length))
{
w->watchpoint_triggered = watch_triggered_yes;
break;
diff --git a/gdb/corefile.c b/gdb/corefile.c
index 4ddcc06..30960c1 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -218,8 +218,8 @@ read_memory_object (enum target_object object, CORE_ADDR memaddr,
enum target_xfer_status status;
ULONGEST xfered_len;
- status = target_xfer_partial (current_top_target (), object, NULL,
- myaddr + xfered, NULL,
+ status = target_xfer_partial (current_inferior ()->top_target (), object,
+ NULL, myaddr + xfered, NULL,
memaddr + xfered, len - xfered,
&xfered_len);
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 8510087..49bbbec 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -863,8 +863,8 @@ elf_gnu_ifunc_resolve_by_got (const char *name, CORE_ADDR *addr_p)
if (target_read_memory (pointer_address, buf, ptr_size) != 0)
continue;
addr = extract_typed_address (buf, ptr_type);
- addr = gdbarch_convert_from_func_ptr_addr (gdbarch, addr,
- current_top_target ());
+ addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, addr, current_inferior ()->top_target ());
addr = gdbarch_addr_bits_remove (gdbarch, addr);
if (elf_gnu_ifunc_record_cache (name, addr))
@@ -931,12 +931,13 @@ elf_gnu_ifunc_resolve_addr (struct gdbarch *gdbarch, CORE_ADDR pc)
parameter. FUNCTION is the function entry address. ADDRESS may be a
function descriptor. */
- target_auxv_search (current_top_target (), AT_HWCAP, &hwcap);
+ target_auxv_search (current_inferior ()->top_target (), AT_HWCAP, &hwcap);
hwcap_val = value_from_longest (builtin_type (gdbarch)
->builtin_unsigned_long, hwcap);
address_val = call_function_by_hand (function, NULL, hwcap_val);
address = value_as_address (address_val);
- address = gdbarch_convert_from_func_ptr_addr (gdbarch, address, current_top_target ());
+ address = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, address, current_inferior ()->top_target ());
address = gdbarch_addr_bits_remove (gdbarch, address);
if (name_at_pc)
@@ -1042,9 +1043,8 @@ elf_gnu_ifunc_resolver_return_stop (struct breakpoint *b)
gdbarch_return_value (gdbarch, func_func, value_type, regcache,
value_contents_raw (value), NULL);
resolved_address = value_as_address (value);
- resolved_pc = gdbarch_convert_from_func_ptr_addr (gdbarch,
- resolved_address,
- current_top_target ());
+ resolved_pc = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, resolved_address, current_inferior ()->top_target ());
resolved_pc = gdbarch_addr_bits_remove (gdbarch, resolved_pc);
gdb_assert (current_program_space == b->pspace || b->pspace == NULL);
diff --git a/gdb/eval.c b/gdb/eval.c
index 530ff15..363ab4f 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -42,6 +42,7 @@
#include <ctype.h>
#include "expop.h"
#include "c-exp.h"
+#include "inferior.h"
/* Parse the string EXP as a C expression, evaluate it,
@@ -1964,8 +1965,8 @@ eval_op_objc_msgcall (struct type *expect_type, struct expression *exp,
/* The address might point to a function descriptor;
resolve it to the actual code address instead. */
- addr = gdbarch_convert_from_func_ptr_addr (exp->gdbarch, addr,
- current_top_target ());
+ addr = gdbarch_convert_from_func_ptr_addr
+ (exp->gdbarch, addr, current_inferior ()->top_target ());
/* Is it a high_level symbol? */
sym = find_pc_function (addr);
diff --git a/gdb/exec.c b/gdb/exec.c
index b737bcf..ff0db82 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -775,7 +775,7 @@ section_table_read_available_memory (gdb_byte *readbuf, ULONGEST offset,
ULONGEST len, ULONGEST *xfered_len)
{
const target_section_table *table
- = target_get_section_table (current_top_target ());
+ = target_get_section_table (current_inferior ()->top_target ());
std::vector<mem_range> available_memory
= section_table_available_memory (offset, len, *table);
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 170e8f5..6cab31d 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -593,7 +593,7 @@ static gdb::optional<gdb::byte_vector>
fbsd_make_note_desc (enum target_object object, uint32_t structsize)
{
gdb::optional<gdb::byte_vector> buf =
- target_read_alloc (current_top_target (), object, NULL);
+ target_read_alloc (current_inferior ()->top_target (), object, NULL);
if (!buf || buf->empty ())
return {};
diff --git a/gdb/frame.c b/gdb/frame.c
index 4578b1a..dc9fdd4 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2478,9 +2478,8 @@ inside_main_func (frame_info *this_frame)
/* Convert any function descriptor addresses into the actual function
code address. */
- sym_addr
- = gdbarch_convert_from_func_ptr_addr (get_frame_arch (this_frame),
- sym_addr, current_top_target ());
+ sym_addr = gdbarch_convert_from_func_ptr_addr
+ (get_frame_arch (this_frame), sym_addr, current_inferior ()->top_target ());
return sym_addr == get_frame_func (this_frame);
}
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index 8461535..45e57c2 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -31,6 +31,7 @@
#include <algorithm>
#include "cli/cli-style.h"
#include "dwarf2/loc.h"
+#include "inferior.h"
static struct cp_abi_ops gnu_v3_abi_ops;
@@ -1243,8 +1244,8 @@ gnuv3_skip_trampoline (struct frame_info *frame, CORE_ADDR stop_pc)
(powerpc 64 for example). Make sure to retrieve the address
of the real function from the function descriptor before passing on
the address to other layers of GDB. */
- func_addr = gdbarch_convert_from_func_ptr_addr (gdbarch, method_stop_pc,
- current_top_target ());
+ func_addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, method_stop_pc, current_inferior ()->top_target ());
if (func_addr != 0)
method_stop_pc = func_addr;
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 35eeffe..1c4fc4c 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -2653,8 +2653,8 @@ getunwind_table ()
we should find a way to override the corefile layer's
xfer_partial method. */
- return target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE,
- NULL);
+ return target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_UNWIND_TABLE, NULL);
}
/* Get the kernel unwind table. */
diff --git a/gdb/ia64-vms-tdep.c b/gdb/ia64-vms-tdep.c
index 0481f00..cc8e191 100644
--- a/gdb/ia64-vms-tdep.c
+++ b/gdb/ia64-vms-tdep.c
@@ -41,7 +41,8 @@ ia64_vms_find_proc_info_x (unw_addr_space_t as, unw_word_t ip,
CORE_ADDR table_addr;
unsigned int info_len;
- res = target_read (current_top_target (), TARGET_OBJECT_OPENVMS_UIB,
+ res = target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_OPENVMS_UIB,
annex + 2, buf, 0, sizeof (buf));
if (res != sizeof (buf))
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 2332f29..ca3347f 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -269,8 +269,8 @@ find_function_addr (struct value *function,
ftype = check_typedef (TYPE_TARGET_TYPE (ftype));
if (ftype->code () == TYPE_CODE_FUNC
|| ftype->code () == TYPE_CODE_METHOD)
- funaddr = gdbarch_convert_from_func_ptr_addr (gdbarch, funaddr,
- current_top_target ());
+ funaddr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, funaddr, current_inferior ()->top_target());
}
if (ftype->code () == TYPE_CODE_FUNC
|| ftype->code () == TYPE_CODE_METHOD)
@@ -321,9 +321,8 @@ find_function_addr (struct value *function,
funaddr = value_as_address (value_addr (function));
nfunaddr = funaddr;
- funaddr
- = gdbarch_convert_from_func_ptr_addr (gdbarch, funaddr,
- current_top_target ());
+ funaddr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, funaddr, current_inferior ()->top_target ());
if (funaddr != nfunaddr)
found_descriptor = 1;
}
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 80e6ad3..a6e9572 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -759,7 +759,7 @@ continue_command (const char *args, int from_tty)
ensure_not_running ();
}
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
if (from_tty)
printf_filtered (_("Continuing.\n"));
@@ -877,7 +877,7 @@ step_1 (int skip_subroutines, int single_inst, const char *count_string)
= strip_bg_char (count_string, &async_exec);
count_string = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
count = count_string ? parse_and_eval_long (count_string) : 1;
@@ -1075,7 +1075,7 @@ jump_command (const char *arg, int from_tty)
gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
arg = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
if (!arg)
error_no_arg (_("starting address"));
@@ -1155,7 +1155,7 @@ signal_command (const char *signum_exp, int from_tty)
= strip_bg_char (signum_exp, &async_exec);
signum_exp = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
if (!signum_exp)
error_no_arg (_("signal number"));
@@ -1400,7 +1400,7 @@ until_command (const char *arg, int from_tty)
gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
arg = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
if (arg)
until_break_command (arg, from_tty, 0);
@@ -1425,7 +1425,7 @@ advance_command (const char *arg, int from_tty)
gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
arg = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
until_break_command (arg, from_tty, 1);
}
@@ -1772,7 +1772,7 @@ finish_command (const char *arg, int from_tty)
gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (arg, &async_exec);
arg = stripped.get ();
- prepare_execution_command (current_top_target (), async_exec);
+ prepare_execution_command (current_inferior ()->top_target (), async_exec);
if (arg)
error (_("The \"finish\" command does not take any arguments."));
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 69baee3..9188f72 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -507,7 +507,7 @@ print_inferior (struct ui_out *uiout, const char *requested_inferiors)
uiout->field_signed ("number", inf->num);
- /* Because target_pid_to_str uses current_top_target,
+ /* Because target_pid_to_str uses the current inferior,
switch the inferior. */
switch_to_inferior_no_thread (inf);
diff --git a/gdb/infrun.c b/gdb/infrun.c
index b6f399d..20035a0 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1777,7 +1777,7 @@ displaced_step_finish (thread_info *event_thread, enum gdb_signal signal)
/* Fixup may need to read memory/registers. Switch to the thread
that we're fixing up. Also, target_stopped_by_watchpoint checks
the current thread, and displaced_step_restore performs ptid-dependent
- memory accesses using current_inferior() and current_top_target(). */
+ memory accesses using current_inferior(). */
switch_to_thread (event_thread);
displaced_step_reset_cleanup cleanup (displaced);
@@ -5813,7 +5813,8 @@ handle_signal_stop (struct execution_control_state *ecs)
infrun_debug_printf ("stopped by watchpoint");
- if (target_stopped_data_address (current_top_target (), &addr))
+ if (target_stopped_data_address (current_inferior ()->top_target (),
+ &addr))
infrun_debug_printf ("stopped data address=%s",
paddress (reg_gdbarch, addr));
else
@@ -8835,7 +8836,8 @@ siginfo_value_read (struct value *v)
validate_registers_access ();
transferred =
- target_read (current_top_target (), TARGET_OBJECT_SIGNAL_INFO,
+ target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_SIGNAL_INFO,
NULL,
value_contents_all_raw (v),
value_offset (v),
@@ -8857,7 +8859,7 @@ siginfo_value_write (struct value *v, struct value *fromval)
vice versa. */
validate_registers_access ();
- transferred = target_write (current_top_target (),
+ transferred = target_write (current_inferior ()->top_target (),
TARGET_OBJECT_SIGNAL_INFO,
NULL,
value_contents_all_raw (fromval),
@@ -8921,7 +8923,8 @@ public:
siginfo_data.reset ((gdb_byte *) xmalloc (len));
- if (target_read (current_top_target (), TARGET_OBJECT_SIGNAL_INFO, NULL,
+ if (target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_SIGNAL_INFO, NULL,
siginfo_data.get (), 0, len) != len)
{
/* Errors ignored. */
@@ -8956,7 +8959,8 @@ public:
struct type *type = gdbarch_get_siginfo_type (gdbarch);
/* Errors ignored. */
- target_write (current_top_target (), TARGET_OBJECT_SIGNAL_INFO, NULL,
+ target_write (current_inferior ()->top_target (),
+ TARGET_OBJECT_SIGNAL_INFO, NULL,
m_siginfo_data.get (), 0, TYPE_LENGTH (type));
}
diff --git a/gdb/linespec.c b/gdb/linespec.c
index c7dbd3e..4034bba 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -47,6 +47,7 @@
#include "gdbsupport/function-view.h"
#include "gdbsupport/def-vector.h"
#include <algorithm>
+#include "inferior.h"
/* An enumeration of the various things a user might attempt to
complete for a linespec location. */
@@ -2314,7 +2315,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec_p ls)
= (gdbarch_convert_from_func_ptr_addr
(gdbarch,
msym_addr,
- current_top_target ()));
+ current_inferior ()->top_target ()));
}
if (msym_addr == addr)
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 38c5ecf..19604b5 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -410,9 +410,10 @@ int
linux_is_uclinux (void)
{
CORE_ADDR dummy;
+ target_ops *target = current_inferior ()->top_target ();
- return (target_auxv_search (current_top_target (), AT_NULL, &dummy) > 0
- && target_auxv_search (current_top_target (), AT_PAGESZ, &dummy) == 0);
+ return (target_auxv_search (target, AT_NULL, &dummy) > 0
+ && target_auxv_search (target, AT_PAGESZ, &dummy) == 0);
}
static int
@@ -1735,7 +1736,8 @@ linux_get_siginfo_data (thread_info *thread, struct gdbarch *gdbarch)
gdb::byte_vector buf (TYPE_LENGTH (siginfo_type));
- bytes_read = target_read (current_top_target (), TARGET_OBJECT_SIGNAL_INFO, NULL,
+ bytes_read = target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_SIGNAL_INFO, NULL,
buf.data (), 0, TYPE_LENGTH (siginfo_type));
if (bytes_read != TYPE_LENGTH (siginfo_type))
buf.clear ();
@@ -2037,7 +2039,8 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
/* Auxillary vector. */
gdb::optional<gdb::byte_vector> auxv =
- target_read_alloc (current_top_target (), TARGET_OBJECT_AUXV, NULL);
+ target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_AUXV, NULL);
if (auxv && !auxv->empty ())
{
note_data.reset (elfcore_write_note (obfd, note_data.release (),
@@ -2317,7 +2320,8 @@ linux_vsyscall_range_raw (struct gdbarch *gdbarch, struct mem_range *range)
char filename[100];
long pid;
- if (target_auxv_search (current_top_target (), AT_SYSINFO_EHDR, &range->start) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_SYSINFO_EHDR, &range->start) <= 0)
return 0;
/* It doesn't make sense to access the host's /proc when debugging a
@@ -2507,14 +2511,15 @@ linux_displaced_step_location (struct gdbarch *gdbarch)
local-store address and is thus not usable as displaced stepping
location. The auxiliary vector gets us the PowerPC-side entry
point address instead. */
- if (target_auxv_search (current_top_target (), AT_ENTRY, &addr) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_ENTRY, &addr) <= 0)
throw_error (NOT_SUPPORTED_ERROR,
_("Cannot find AT_ENTRY auxiliary vector entry."));
/* Make certain that the address points at real code, and not a
function descriptor. */
- addr = gdbarch_convert_from_func_ptr_addr (gdbarch, addr,
- current_top_target ());
+ addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, addr, current_inferior ()->top_target ());
/* Inferior calls also use the entry point as a breakpoint location.
We don't want displaced stepping to interfere with those
diff --git a/gdb/maint.c b/gdb/maint.c
index 5254cd6..7f505d0 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -40,6 +40,7 @@
#include "top.h"
#include "maint.h"
#include "gdbsupport/selftest.h"
+#include "inferior.h"
#include "cli/cli-decode.h"
#include "cli/cli-utils.h"
@@ -472,7 +473,7 @@ maintenance_info_target_sections (const char *arg, int from_tty)
bfd *abfd = nullptr;
int digits = 0;
const target_section_table *table
- = target_get_section_table (current_top_target ());
+ = target_get_section_table (current_inferior ()->top_target ());
if (table == nullptr)
return;
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index d5ce08e..c6f1ab4 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -264,7 +264,7 @@ proceed_thread_callback (struct thread_info *thread, void *arg)
static void
exec_continue (char **argv, int argc)
{
- prepare_execution_command (current_top_target (), mi_async_p ());
+ prepare_execution_command (current_inferior ()->top_target (), mi_async_p ());
if (non_stop)
{
@@ -1328,7 +1328,8 @@ mi_cmd_data_read_memory (const char *command, char **argv, int argc)
gdb::byte_vector mbuf (total_bytes);
- nr_bytes = target_read (current_top_target (), TARGET_OBJECT_MEMORY, NULL,
+ nr_bytes = target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_MEMORY, NULL,
mbuf.data (), addr, total_bytes);
if (nr_bytes <= 0)
error (_("Unable to read memory."));
@@ -1448,7 +1449,7 @@ mi_cmd_data_read_memory_bytes (const char *command, char **argv, int argc)
length = atol (argv[1]);
std::vector<memory_read_result> result
- = read_memory_robust (current_top_target (), addr, length);
+ = read_memory_robust (current_inferior ()->top_target (), addr, length);
if (result.size () == 0)
error (_("Unable to read memory."));
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 3cf849f..8ffd907 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -54,6 +54,7 @@
#include <algorithm>
#include "safe-ctype.h"
#include "gdbsupport/parallel-for.h"
+#include "inferior.h"
#if CXX_STD_THREAD
#include <mutex>
@@ -78,9 +79,8 @@ msymbol_is_function (struct objfile *objfile, minimal_symbol *minsym,
case mst_data_gnu_ifunc:
{
struct gdbarch *gdbarch = objfile->arch ();
- CORE_ADDR pc
- = gdbarch_convert_from_func_ptr_addr (gdbarch, msym_addr,
- current_top_target ());
+ CORE_ADDR pc = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, msym_addr, current_inferior ()->top_target ());
if (pc != msym_addr)
{
if (func_address_p != NULL)
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index f1ba165..171f5b3 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -1967,8 +1967,8 @@ ppc_linux_nat_target::read_description ()
features.wordsize = ppc_linux_target_wordsize (tid);
- CORE_ADDR hwcap = linux_get_hwcap (current_top_target ());
- CORE_ADDR hwcap2 = linux_get_hwcap2 (current_top_target ());
+ CORE_ADDR hwcap = linux_get_hwcap (current_inferior ()->top_target ());
+ CORE_ADDR hwcap2 = linux_get_hwcap2 (current_inferior ()->top_target ());
if (have_ptrace_getsetvsxregs
&& (hwcap & PPC_FEATURE_HAS_VSX))
@@ -2125,7 +2125,8 @@ ppc_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
takes two hardware watchpoints though. */
if (len > 1
&& hwdebug_info.features & PPC_DEBUG_FEATURE_DATA_BP_RANGE
- && linux_get_hwcap (current_top_target ()) & PPC_FEATURE_BOOKE)
+ && (linux_get_hwcap (current_inferior ()->top_target ())
+ & PPC_FEATURE_BOOKE))
return 2;
/* Check if the processor provides DAWR interface. */
if (hwdebug_info.features & PPC_DEBUG_FEATURE_DATA_BP_DAWR)
@@ -2153,7 +2154,8 @@ ppc_linux_nat_target::region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
{
gdb_assert (m_dreg_interface.debugreg_p ());
- if (((linux_get_hwcap (current_top_target ()) & PPC_FEATURE_BOOKE)
+ if (((linux_get_hwcap (current_inferior ()->top_target ())
+ & PPC_FEATURE_BOOKE)
&& (addr + len) > (addr & ~3) + 4)
|| (addr + len) > (addr & ~7) + 8)
return 0;
@@ -2640,7 +2642,8 @@ ppc_linux_nat_target::insert_watchpoint (CORE_ADDR addr, int len,
long wp_value;
long read_mode, write_mode;
- if (linux_get_hwcap (current_top_target ()) & PPC_FEATURE_BOOKE)
+ if (linux_get_hwcap (current_inferior ()->top_target ())
+ & PPC_FEATURE_BOOKE)
{
/* PowerPC 440 requires only the read/write flags to be passed
to the kernel. */
@@ -3013,9 +3016,11 @@ ppc_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
int mask;
if (m_dreg_interface.hwdebug_p ()
- && linux_get_hwcap (current_top_target ()) & PPC_FEATURE_BOOKE)
+ && (linux_get_hwcap (current_inferior ()->top_target ())
+ & PPC_FEATURE_BOOKE))
return start <= addr && start + length >= addr;
- else if (linux_get_hwcap (current_top_target ()) & PPC_FEATURE_BOOKE)
+ else if (linux_get_hwcap (current_inferior ()->top_target ())
+ & PPC_FEATURE_BOOKE)
mask = 3;
else
mask = 7;
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 91d2039..eb703cf 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -3643,7 +3643,8 @@ procfs_target::make_corefile_notes (bfd *obfd, int *note_size)
&thread_args);
gdb::optional<gdb::byte_vector> auxv =
- target_read_alloc (current_top_target (), TARGET_OBJECT_AUXV, NULL);
+ target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_AUXV, NULL);
if (auxv && !auxv->empty ())
note_data.reset (elfcore_write_note (obfd, note_data.release (), note_size,
"CORE", NT_AUXV, auxv->data (),
diff --git a/gdb/regcache.c b/gdb/regcache.c
index a419a21..bf3c6f4 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1916,7 +1916,7 @@ cooked_write_test (struct gdbarch *gdbarch)
{
/* Error out if debugging something, because we're going to push the
test target, which would pop any existing target. */
- if (current_top_target ()->stratum () >= process_stratum)
+ if (current_inferior ()->top_target ()->stratum () >= process_stratum)
error (_("target already pushed"));
/* Create a mock environment. A process_stratum target pushed. */
diff --git a/gdb/remote.c b/gdb/remote.c
index 6ccfa33..ff1366e 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -5079,9 +5079,8 @@ remote_target::remote_check_symbols ()
/* If this is a function address, return the start of code
instead of any data function descriptor. */
- sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
- sym_addr,
- current_top_target ());
+ sym_addr = gdbarch_convert_from_func_ptr_addr
+ (target_gdbarch (), sym_addr, current_inferior ()->top_target ());
xsnprintf (msg.data (), get_remote_packet_size (), "qSymbol:%s:%s",
phex_nz (sym_addr, addr_size), &reply[8]);
@@ -11463,7 +11462,8 @@ remote_target::memory_map ()
{
std::vector<mem_region> result;
gdb::optional<gdb::char_vector> text
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_MEMORY_MAP, NULL);
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_MEMORY_MAP, NULL);
if (text)
result = parse_memory_map (text->data ());
@@ -13694,7 +13694,8 @@ traceframe_info_up
remote_target::traceframe_info ()
{
gdb::optional<gdb::char_vector> text
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_TRACEFRAME_INFO,
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_TRACEFRAME_INFO,
NULL);
if (text)
return parse_traceframe_info (text->data ());
@@ -13923,7 +13924,8 @@ static void
btrace_read_config (struct btrace_config *conf)
{
gdb::optional<gdb::char_vector> xml
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_BTRACE_CONF, "");
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_BTRACE_CONF, "");
if (xml)
parse_xml_btrace_conf (conf, xml->data ());
}
@@ -14124,7 +14126,8 @@ remote_target::read_btrace (struct btrace_data *btrace,
}
gdb::optional<gdb::char_vector> xml
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_BTRACE, annex);
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_BTRACE, annex);
if (!xml)
return BTRACE_ERR_UNKNOWN;
@@ -14180,7 +14183,7 @@ remote_target::pid_to_exec_file (int pid)
xsnprintf (annex, annex_size, "%x", pid);
}
- filename = target_read_stralloc (current_top_target (),
+ filename = target_read_stralloc (current_inferior ()->top_target (),
TARGET_OBJECT_EXEC_FILE, annex);
return filename ? filename->data () : nullptr;
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index b09f631..cb06cd9 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -5077,7 +5077,8 @@ ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
return 0;
case 1014: /* Data Cache Block set to Zero */
- if (target_auxv_search (current_top_target (), AT_DCACHEBSIZE, &at_dcsz) <= 0
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_DCACHEBSIZE, &at_dcsz) <= 0
|| at_dcsz == 0)
at_dcsz = 128; /* Assume 128-byte cache line size (POWER8) */
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
index d493843..41b50ce 100644
--- a/gdb/s390-linux-nat.c
+++ b/gdb/s390-linux-nat.c
@@ -1002,7 +1002,7 @@ s390_linux_nat_target::read_description ()
that mode, report s390 architecture with 64-bit GPRs. */
#ifdef __s390x__
{
- CORE_ADDR hwcap = linux_get_hwcap (current_top_target ());
+ CORE_ADDR hwcap = linux_get_hwcap (current_inferior ()->top_target ());
have_regset_tdb = (hwcap & HWCAP_S390_TE)
&& check_regset (tid, NT_S390_TDB, s390_sizeof_tdbregset);
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 39c8ee0..1bd770a 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -39,6 +39,7 @@
#include "target-descriptions.h"
#include "trad-frame.h"
#include "value.h"
+#include "inferior.h"
#include "features/s390-linux32.c"
#include "features/s390x-linux64.c"
@@ -685,7 +686,7 @@ s390_load (struct s390_prologue_data *data,
if (pv_is_constant (addr))
{
const struct target_section *secp
- = target_section_by_addr (current_top_target (), addr.k);
+ = target_section_by_addr (current_inferior ()->top_target (), addr.k);
if (secp != NULL
&& (bfd_section_flags (secp->the_bfd_section) & SEC_READONLY))
return pv_constant (read_memory_integer (addr.k, size,
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index a0dbdde..faccf29 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -246,7 +246,8 @@ solib_aix_get_library_list (struct inferior *inf, const char *warning_msg)
return data->library_list;
gdb::optional<gdb::char_vector> library_document
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_LIBRARIES_AIX,
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_LIBRARIES_AIX,
NULL);
if (!library_document && warning_msg != NULL)
{
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 628ef02..152afc2 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -488,7 +488,8 @@ darwin_solib_read_all_image_info_addr (struct darwin_info *info)
if (TYPE_LENGTH (ptr_type) > sizeof (buf))
return;
- len = target_read (current_top_target (), TARGET_OBJECT_DARWIN_DYLD_INFO,
+ len = target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_DARWIN_DYLD_INFO,
NULL, buf, 0, TYPE_LENGTH (ptr_type));
if (len <= 0)
return;
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 4b1b756..c279435 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -280,7 +280,8 @@ dsbt_get_initial_loadmaps (void)
{
struct dsbt_info *info = get_dsbt_info ();
gdb::optional<gdb::byte_vector> buf
- = target_read_alloc (current_top_target (), TARGET_OBJECT_FDPIC, "exec");
+ = target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_FDPIC, "exec");
if (!buf || buf->empty ())
{
@@ -291,7 +292,8 @@ dsbt_get_initial_loadmaps (void)
if (solib_dsbt_debug)
dsbt_print_loadmap (info->exec_loadmap);
- buf = target_read_alloc (current_top_target (), TARGET_OBJECT_FDPIC, "exec");
+ buf = target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_FDPIC, "exec");
if (!buf || buf->empty ())
{
info->interp_loadmap = NULL;
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index c7b3157..5314694 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -428,11 +428,14 @@ read_program_header (int type, int *p_arch_size, CORE_ADDR *base_addr)
int pt_phdr_p = 0;
/* Get required auxv elements from target. */
- if (target_auxv_search (current_top_target (), AT_PHDR, &at_phdr) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_PHDR, &at_phdr) <= 0)
return {};
- if (target_auxv_search (current_top_target (), AT_PHENT, &at_phent) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_PHENT, &at_phent) <= 0)
return {};
- if (target_auxv_search (current_top_target (), AT_PHNUM, &at_phnum) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_PHNUM, &at_phnum) <= 0)
return {};
if (!at_phdr || !at_phnum)
return {};
@@ -1239,7 +1242,8 @@ svr4_current_sos_via_xfer_libraries (struct svr4_library_list *list,
/* Fetch the list of shared libraries. */
gdb::optional<gdb::char_vector> svr4_library_document
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_LIBRARIES_SVR4,
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_LIBRARIES_SVR4,
annex);
if (!svr4_library_document)
return 0;
@@ -2242,9 +2246,8 @@ enable_break (struct svr4_info *info, int from_tty)
sym_addr = gdbarch_addr_bits_remove
(target_gdbarch (),
- gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
- sym_addr,
- current_top_target ()));
+ gdbarch_convert_from_func_ptr_addr
+ (target_gdbarch (), sym_addr, current_inferior ()->top_target ()));
/* On at least some versions of Solaris there's a dynamic relocation
on _r_debug.r_brk and SYM_ADDR may not be relocated yet, e.g., if
@@ -2353,7 +2356,8 @@ enable_break (struct svr4_info *info, int from_tty)
/* If we were not able to find the base address of the loader
from our so_list, then try using the AT_BASE auxilliary entry. */
if (!load_addr_found)
- if (target_auxv_search (current_top_target (), AT_BASE, &load_addr) > 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_BASE, &load_addr) > 0)
{
int addr_bit = gdbarch_addr_bit (target_gdbarch ());
@@ -2474,9 +2478,8 @@ enable_break (struct svr4_info *info, int from_tty)
&& (BMSYMBOL_VALUE_ADDRESS (msymbol) != 0))
{
sym_addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
- sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
- sym_addr,
- current_top_target ());
+ sym_addr = gdbarch_convert_from_func_ptr_addr
+ (target_gdbarch (), sym_addr, current_inferior ()->top_target ());
svr4_create_solib_event_breakpoints (info, target_gdbarch (),
sym_addr);
return 1;
@@ -2492,9 +2495,9 @@ enable_break (struct svr4_info *info, int from_tty)
&& (BMSYMBOL_VALUE_ADDRESS (msymbol) != 0))
{
sym_addr = BMSYMBOL_VALUE_ADDRESS (msymbol);
- sym_addr = gdbarch_convert_from_func_ptr_addr (target_gdbarch (),
- sym_addr,
- current_top_target ());
+ sym_addr = gdbarch_convert_from_func_ptr_addr
+ (target_gdbarch (), sym_addr,
+ current_inferior ()->top_target ());
svr4_create_solib_event_breakpoints (info, target_gdbarch (),
sym_addr);
return 1;
@@ -2582,7 +2585,8 @@ svr4_exec_displacement (CORE_ADDR *displacementp)
if ((bfd_get_file_flags (current_program_space->exec_bfd ()) & DYNAMIC) == 0)
return 0;
- if (target_auxv_search (current_top_target (), AT_ENTRY, &entry_point) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_ENTRY, &entry_point) <= 0)
return 0;
exec_displacement
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index d8e33c3..1e010c5 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -25,6 +25,7 @@
#include "target.h"
#include "solib-target.h"
#include <vector>
+#include "inferior.h"
/* Private data for each loaded library. */
struct lm_info_target : public lm_info_base
@@ -233,8 +234,8 @@ solib_target_current_sos (void)
/* Fetch the list of shared libraries. */
gdb::optional<gdb::char_vector> library_document
- = target_read_stralloc (current_top_target (), TARGET_OBJECT_LIBRARIES,
- NULL);
+ = target_read_stralloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_LIBRARIES, NULL);
if (!library_document)
return NULL;
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 34f2287..a6df0fc 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -189,7 +189,7 @@ ULONGEST
sparc_fetch_wcookie (struct gdbarch *gdbarch)
{
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
- struct target_ops *ops = current_top_target ();
+ struct target_ops *ops = current_inferior ()->top_target ();
gdb_byte buf[8];
int len;
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index c4d5ab2..3609794 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -214,10 +214,12 @@ adi_available (void)
return proc->stat.is_avail;
proc->stat.checked_avail = true;
- if (target_auxv_search (current_top_target (), AT_ADI_BLKSZ, &value) <= 0)
+ if (target_auxv_search (current_inferior ()->top_target (),
+ AT_ADI_BLKSZ, &value) <= 0)
return false;
proc->stat.blksize = value;
- target_auxv_search (current_top_target (), AT_ADI_NBITS, &value);
+ target_auxv_search (current_inferior ()->top_target (),
+ AT_ADI_NBITS, &value);
proc->stat.nbits = value;
proc->stat.max_version = (1 << proc->stat.nbits) - 2;
proc->stat.is_avail = true;
diff --git a/gdb/symfile.c b/gdb/symfile.c
index adcdc16..e417878 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -838,10 +838,8 @@ init_entry_point_info (struct objfile *objfile)
/* Make certain that the address points at real code, and not a
function descriptor. */
- entry_point
- = gdbarch_convert_from_func_ptr_addr (objfile->arch (),
- entry_point,
- current_top_target ());
+ entry_point = gdbarch_convert_from_func_ptr_addr
+ (objfile->arch (), entry_point, current_inferior ()->top_target ());
/* Remove any ISA markers, so that this matches entries in the
symbol table. */
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 084e8ec..122fdf0 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -5564,10 +5564,8 @@ find_gnu_ifunc (const symbol *sym)
if (MSYMBOL_TYPE (minsym) == mst_data_gnu_ifunc)
{
struct gdbarch *gdbarch = objfile->arch ();
- msym_addr
- = gdbarch_convert_from_func_ptr_addr (gdbarch,
- msym_addr,
- current_top_target ());
+ msym_addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, msym_addr, current_inferior ()->top_target ());
}
if (msym_addr == address)
{
diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c
index 248edd5..c0e798a 100644
--- a/gdb/target-descriptions.c
+++ b/gdb/target-descriptions.c
@@ -553,11 +553,13 @@ target_find_description (void)
/* Next try to read the description from the current target using
target objects. */
if (current_target_desc == NULL)
- current_target_desc = target_read_description_xml (current_top_target ());
+ current_target_desc = target_read_description_xml
+ (current_inferior ()->top_target ());
/* If that failed try a target-specific hook. */
if (current_target_desc == NULL)
- current_target_desc = target_read_description (current_top_target ());
+ current_target_desc = target_read_description
+ (current_inferior ()->top_target ());
/* If a non-NULL description was returned, then update the current
architecture. */
diff --git a/gdb/target-memory.c b/gdb/target-memory.c
index 060f9cc..877f6c3 100644
--- a/gdb/target-memory.c
+++ b/gdb/target-memory.c
@@ -21,6 +21,7 @@
#include "defs.h"
#include "target.h"
#include "memory-map.h"
+#include "inferior.h"
#include "gdbsupport/gdb_sys_time.h"
#include <algorithm>
@@ -335,7 +336,7 @@ target_write_memory_blocks (const std::vector<memory_write_request> &requests,
{
LONGEST len;
- len = target_write_with_progress (current_top_target (),
+ len = target_write_with_progress (current_inferior ()->top_target (),
TARGET_OBJECT_MEMORY, NULL,
iter.data, iter.begin,
iter.end - iter.begin,
@@ -358,7 +359,7 @@ target_write_memory_blocks (const std::vector<memory_write_request> &requests,
{
LONGEST len;
- len = target_write_with_progress (current_top_target (),
+ len = target_write_with_progress (current_inferior ()->top_target (),
TARGET_OBJECT_FLASH, NULL,
iter.data, iter.begin,
iter.end - iter.begin,
diff --git a/gdb/target.c b/gdb/target.c
index 9c4af5b..3653a7a 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -110,16 +110,6 @@ static std::unordered_map<const target_info *, target_open_ftype *>
static struct target_ops *the_debug_target;
-/* Top of target stack. */
-/* The target structure we are currently using to talk to a process
- or file or whatever "inferior" we have. */
-
-target_ops *
-current_top_target ()
-{
- return current_inferior ()->top_target ();
-}
-
/* Command list for target. */
static struct cmd_list_element *targetlist = NULL;
@@ -173,7 +163,9 @@ show_targetdebug (struct ui_file *file, int from_tty,
int
target_has_memory ()
{
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
if (t->has_memory ())
return 1;
@@ -183,7 +175,9 @@ target_has_memory ()
int
target_has_stack ()
{
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
if (t->has_stack ())
return 1;
@@ -193,7 +187,9 @@ target_has_stack ()
int
target_has_registers ()
{
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
if (t->has_registers ())
return 1;
@@ -218,7 +214,7 @@ target_has_execution (inferior *inf)
const char *
target_shortname ()
{
- return current_top_target ()->shortname ();
+ return current_inferior ()->top_target ()->shortname ();
}
/* See target.h. */
@@ -226,7 +222,7 @@ target_shortname ()
bool
target_attach_no_wait ()
{
- return current_top_target ()->attach_no_wait ();
+ return current_inferior ()->top_target ()->attach_no_wait ();
}
/* See target.h. */
@@ -234,7 +230,7 @@ target_attach_no_wait ()
void
target_post_attach (int pid)
{
- return current_top_target ()->post_attach (pid);
+ return current_inferior ()->top_target ()->post_attach (pid);
}
/* See target.h. */
@@ -242,7 +238,7 @@ target_post_attach (int pid)
void
target_prepare_to_store (regcache *regcache)
{
- return current_top_target ()->prepare_to_store (regcache);
+ return current_inferior ()->top_target ()->prepare_to_store (regcache);
}
/* See target.h. */
@@ -250,13 +246,15 @@ target_prepare_to_store (regcache *regcache)
bool
target_supports_enable_disable_tracepoint ()
{
- return current_top_target ()->supports_enable_disable_tracepoint ();
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->supports_enable_disable_tracepoint ();
}
bool
target_supports_string_tracing ()
{
- return current_top_target ()->supports_string_tracing ();
+ return current_inferior ()->top_target ()->supports_string_tracing ();
}
/* See target.h. */
@@ -264,7 +262,9 @@ target_supports_string_tracing ()
bool
target_supports_evaluation_of_breakpoint_conditions ()
{
- return current_top_target ()->supports_evaluation_of_breakpoint_conditions ();
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->supports_evaluation_of_breakpoint_conditions ();
}
/* See target.h. */
@@ -272,7 +272,7 @@ target_supports_evaluation_of_breakpoint_conditions ()
bool
target_supports_dumpcore ()
{
- return current_top_target ()->supports_dumpcore ();
+ return current_inferior ()->top_target ()->supports_dumpcore ();
}
/* See target.h. */
@@ -280,7 +280,7 @@ target_supports_dumpcore ()
void
target_dumpcore (const char *filename)
{
- return current_top_target ()->dumpcore (filename);
+ return current_inferior ()->top_target ()->dumpcore (filename);
}
/* See target.h. */
@@ -288,7 +288,7 @@ target_dumpcore (const char *filename)
bool
target_can_run_breakpoint_commands ()
{
- return current_top_target ()->can_run_breakpoint_commands ();
+ return current_inferior ()->top_target ()->can_run_breakpoint_commands ();
}
/* See target.h. */
@@ -296,7 +296,7 @@ target_can_run_breakpoint_commands ()
void
target_files_info ()
{
- return current_top_target ()->files_info ();
+ return current_inferior ()->top_target ()->files_info ();
}
/* See target.h. */
@@ -304,7 +304,7 @@ target_files_info ()
void
target_post_startup_inferior (ptid_t ptid)
{
- return current_top_target ()->post_startup_inferior (ptid);
+ return current_inferior ()->top_target ()->post_startup_inferior (ptid);
}
/* See target.h. */
@@ -312,7 +312,7 @@ target_post_startup_inferior (ptid_t ptid)
int
target_insert_fork_catchpoint (int pid)
{
- return current_top_target ()->insert_fork_catchpoint (pid);
+ return current_inferior ()->top_target ()->insert_fork_catchpoint (pid);
}
/* See target.h. */
@@ -320,7 +320,7 @@ target_insert_fork_catchpoint (int pid)
int
target_remove_fork_catchpoint (int pid)
{
- return current_top_target ()->remove_fork_catchpoint (pid);
+ return current_inferior ()->top_target ()->remove_fork_catchpoint (pid);
}
/* See target.h. */
@@ -328,7 +328,7 @@ target_remove_fork_catchpoint (int pid)
int
target_insert_vfork_catchpoint (int pid)
{
- return current_top_target ()->insert_vfork_catchpoint (pid);
+ return current_inferior ()->top_target ()->insert_vfork_catchpoint (pid);
}
/* See target.h. */
@@ -336,7 +336,7 @@ target_insert_vfork_catchpoint (int pid)
int
target_remove_vfork_catchpoint (int pid)
{
- return current_top_target ()->remove_vfork_catchpoint (pid);
+ return current_inferior ()->top_target ()->remove_vfork_catchpoint (pid);
}
/* See target.h. */
@@ -344,7 +344,7 @@ target_remove_vfork_catchpoint (int pid)
int
target_insert_exec_catchpoint (int pid)
{
- return current_top_target ()->insert_exec_catchpoint (pid);
+ return current_inferior ()->top_target ()->insert_exec_catchpoint (pid);
}
/* See target.h. */
@@ -352,7 +352,7 @@ target_insert_exec_catchpoint (int pid)
int
target_remove_exec_catchpoint (int pid)
{
- return current_top_target ()->remove_exec_catchpoint (pid);
+ return current_inferior ()->top_target ()->remove_exec_catchpoint (pid);
}
/* See target.h. */
@@ -361,8 +361,10 @@ int
target_set_syscall_catchpoint (int pid, bool needed, int any_count,
gdb::array_view<const int> syscall_counts)
{
- return current_top_target ()->set_syscall_catchpoint (pid, needed, any_count,
- syscall_counts);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->set_syscall_catchpoint (pid, needed, any_count,
+ syscall_counts);
}
/* See target.h. */
@@ -370,7 +372,7 @@ target_set_syscall_catchpoint (int pid, bool needed, int any_count,
void
target_rcmd (const char *command, struct ui_file *outbuf)
{
- return current_top_target ()->rcmd (command, outbuf);
+ return current_inferior ()->top_target ()->rcmd (command, outbuf);
}
/* See target.h. */
@@ -378,8 +380,9 @@ target_rcmd (const char *command, struct ui_file *outbuf)
bool
target_can_lock_scheduler ()
{
- return (current_top_target ()->get_thread_control_capabilities ()
- & tc_schedlock) != 0;
+ target_ops *target = current_inferior ()->top_target ();
+
+ return (target->get_thread_control_capabilities ()& tc_schedlock) != 0;
}
/* See target.h. */
@@ -387,7 +390,7 @@ target_can_lock_scheduler ()
bool
target_can_async_p ()
{
- return current_top_target ()->can_async_p ();
+ return current_inferior ()->top_target ()->can_async_p ();
}
/* See target.h. */
@@ -395,13 +398,13 @@ target_can_async_p ()
bool
target_is_async_p ()
{
- return current_top_target ()->is_async_p ();
+ return current_inferior ()->top_target ()->is_async_p ();
}
exec_direction_kind
target_execution_direction ()
{
- return current_top_target ()->execution_direction ();
+ return current_inferior ()->top_target ()->execution_direction ();
}
/* See target.h. */
@@ -409,7 +412,7 @@ target_execution_direction ()
const char *
target_extra_thread_info (thread_info *tp)
{
- return current_top_target ()->extra_thread_info (tp);
+ return current_inferior ()->top_target ()->extra_thread_info (tp);
}
/* See target.h. */
@@ -417,7 +420,7 @@ target_extra_thread_info (thread_info *tp)
char *
target_pid_to_exec_file (int pid)
{
- return current_top_target ()->pid_to_exec_file (pid);
+ return current_inferior ()->top_target ()->pid_to_exec_file (pid);
}
/* See target.h. */
@@ -425,7 +428,7 @@ target_pid_to_exec_file (int pid)
gdbarch *
target_thread_architecture (ptid_t ptid)
{
- return current_top_target ()->thread_architecture (ptid);
+ return current_inferior ()->top_target ()->thread_architecture (ptid);
}
/* See target.h. */
@@ -433,7 +436,7 @@ target_thread_architecture (ptid_t ptid)
int
target_find_memory_regions (find_memory_region_ftype func, void *data)
{
- return current_top_target ()->find_memory_regions (func, data);
+ return current_inferior ()->top_target ()->find_memory_regions (func, data);
}
/* See target.h. */
@@ -441,19 +444,19 @@ target_find_memory_regions (find_memory_region_ftype func, void *data)
gdb::unique_xmalloc_ptr<char>
target_make_corefile_notes (bfd *bfd, int *size_p)
{
- return current_top_target ()->make_corefile_notes (bfd, size_p);
+ return current_inferior ()->top_target ()->make_corefile_notes (bfd, size_p);
}
gdb_byte *
target_get_bookmark (const char *args, int from_tty)
{
- return current_top_target ()->get_bookmark (args, from_tty);
+ return current_inferior ()->top_target ()->get_bookmark (args, from_tty);
}
void
target_goto_bookmark (const gdb_byte *arg, int from_tty)
{
- return current_top_target ()->goto_bookmark (arg, from_tty);
+ return current_inferior ()->top_target ()->goto_bookmark (arg, from_tty);
}
/* See target.h. */
@@ -461,7 +464,7 @@ target_goto_bookmark (const gdb_byte *arg, int from_tty)
bool
target_stopped_by_watchpoint ()
{
- return current_top_target ()->stopped_by_watchpoint ();
+ return current_inferior ()->top_target ()->stopped_by_watchpoint ();
}
/* See target.h. */
@@ -469,25 +472,29 @@ target_stopped_by_watchpoint ()
bool
target_stopped_by_sw_breakpoint ()
{
- return current_top_target ()->stopped_by_sw_breakpoint ();
+ return current_inferior ()->top_target ()->stopped_by_sw_breakpoint ();
}
bool
target_supports_stopped_by_sw_breakpoint ()
{
- return current_top_target ()->supports_stopped_by_sw_breakpoint ();
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->supports_stopped_by_sw_breakpoint ();
}
bool
target_stopped_by_hw_breakpoint ()
{
- return current_top_target ()->stopped_by_hw_breakpoint ();
+ return current_inferior ()->top_target ()->stopped_by_hw_breakpoint ();
}
bool
target_supports_stopped_by_hw_breakpoint ()
{
- return current_top_target ()->supports_stopped_by_hw_breakpoint ();
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->supports_stopped_by_hw_breakpoint ();
}
/* See target.h. */
@@ -495,7 +502,7 @@ target_supports_stopped_by_hw_breakpoint ()
bool
target_have_steppable_watchpoint ()
{
- return current_top_target ()->have_steppable_watchpoint ();
+ return current_inferior ()->top_target ()->have_steppable_watchpoint ();
}
/* See target.h. */
@@ -503,7 +510,9 @@ target_have_steppable_watchpoint ()
int
target_can_use_hardware_watchpoint (bptype type, int cnt, int othertype)
{
- return current_top_target ()->can_use_hw_breakpoint (type, cnt, othertype);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->can_use_hw_breakpoint (type, cnt, othertype);
}
/* See target.h. */
@@ -511,14 +520,16 @@ target_can_use_hardware_watchpoint (bptype type, int cnt, int othertype)
int
target_region_ok_for_hw_watchpoint (CORE_ADDR addr, int len)
{
- return current_top_target ()->region_ok_for_hw_watchpoint (addr, len);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->region_ok_for_hw_watchpoint (addr, len);
}
int
target_can_do_single_step ()
{
- return current_top_target ()->can_do_single_step ();
+ return current_inferior ()->top_target ()->can_do_single_step ();
}
/* See target.h. */
@@ -527,7 +538,9 @@ int
target_insert_watchpoint (CORE_ADDR addr, int len, target_hw_bp_type type,
expression *cond)
{
- return current_top_target ()->insert_watchpoint (addr, len, type, cond);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->insert_watchpoint (addr, len, type, cond);
}
/* See target.h. */
@@ -536,7 +549,9 @@ int
target_remove_watchpoint (CORE_ADDR addr, int len, target_hw_bp_type type,
expression *cond)
{
- return current_top_target ()->remove_watchpoint (addr, len, type, cond);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->remove_watchpoint (addr, len, type, cond);
}
/* See target.h. */
@@ -544,7 +559,9 @@ target_remove_watchpoint (CORE_ADDR addr, int len, target_hw_bp_type type,
int
target_insert_hw_breakpoint (gdbarch *gdbarch, bp_target_info *bp_tgt)
{
- return current_top_target ()->insert_hw_breakpoint (gdbarch, bp_tgt);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->insert_hw_breakpoint (gdbarch, bp_tgt);
}
/* See target.h. */
@@ -552,7 +569,9 @@ target_insert_hw_breakpoint (gdbarch *gdbarch, bp_target_info *bp_tgt)
int
target_remove_hw_breakpoint (gdbarch *gdbarch, bp_target_info *bp_tgt)
{
- return current_top_target ()->remove_hw_breakpoint (gdbarch, bp_tgt);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->remove_hw_breakpoint (gdbarch, bp_tgt);
}
/* See target.h. */
@@ -561,7 +580,9 @@ bool
target_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int type,
expression *cond)
{
- return current_top_target ()->can_accel_watchpoint_condition (addr, len, type, cond);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->can_accel_watchpoint_condition (addr, len, type, cond);
}
/* See target.h. */
@@ -569,228 +590,246 @@ target_can_accel_watchpoint_condition (CORE_ADDR addr, int len, int type,
bool
target_can_execute_reverse ()
{
- return current_top_target ()->can_execute_reverse ();
+ return current_inferior ()->top_target ()->can_execute_reverse ();
}
ptid_t
target_get_ada_task_ptid (long lwp, long tid)
{
- return current_top_target ()->get_ada_task_ptid (lwp, tid);
+ return current_inferior ()->top_target ()->get_ada_task_ptid (lwp, tid);
}
bool
target_filesystem_is_local ()
{
- return current_top_target ()->filesystem_is_local ();
+ return current_inferior ()->top_target ()->filesystem_is_local ();
}
void
target_trace_init ()
{
- return current_top_target ()->trace_init ();
+ return current_inferior ()->top_target ()->trace_init ();
}
void
target_download_tracepoint (bp_location *location)
{
- return current_top_target ()->download_tracepoint (location);
+ return current_inferior ()->top_target ()->download_tracepoint (location);
}
bool
target_can_download_tracepoint ()
{
- return current_top_target ()->can_download_tracepoint ();
+ return current_inferior ()->top_target ()->can_download_tracepoint ();
}
void
target_download_trace_state_variable (const trace_state_variable &tsv)
{
- return current_top_target ()->download_trace_state_variable (tsv);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->download_trace_state_variable (tsv);
}
void
target_enable_tracepoint (bp_location *loc)
{
- return current_top_target ()->enable_tracepoint (loc);
+ return current_inferior ()->top_target ()->enable_tracepoint (loc);
}
void
target_disable_tracepoint (bp_location *loc)
{
- return current_top_target ()->disable_tracepoint (loc);
+ return current_inferior ()->top_target ()->disable_tracepoint (loc);
}
void
target_trace_start ()
{
- return current_top_target ()->trace_start ();
+ return current_inferior ()->top_target ()->trace_start ();
}
void
target_trace_set_readonly_regions ()
{
- current_top_target ()->trace_set_readonly_regions ();
+ return current_inferior ()->top_target ()->trace_set_readonly_regions ();
}
int
target_get_trace_status (trace_status *ts)
{
- return current_top_target ()->get_trace_status (ts);
+ return current_inferior ()->top_target ()->get_trace_status (ts);
}
void
target_get_tracepoint_status (breakpoint *tp, uploaded_tp *utp)
{
- return current_top_target ()->get_tracepoint_status (tp, utp);
+ return current_inferior ()->top_target ()->get_tracepoint_status (tp, utp);
}
void
target_trace_stop ()
{
- return current_top_target ()->trace_stop ();
+ return current_inferior ()->top_target ()->trace_stop ();
}
int
target_trace_find (trace_find_type type, int num,
CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
{
- return current_top_target ()->trace_find (type, num, addr1, addr2, tpp);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->trace_find (type, num, addr1, addr2, tpp);
}
bool
target_get_trace_state_variable_value (int tsv, LONGEST *val)
{
- return current_top_target ()->get_trace_state_variable_value (tsv, val);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->get_trace_state_variable_value (tsv, val);
}
int
target_save_trace_data (const char *filename)
{
- return current_top_target ()->save_trace_data (filename);
+ return current_inferior ()->top_target ()->save_trace_data (filename);
}
int
target_upload_tracepoints (uploaded_tp **utpp)
{
- return current_top_target ()->upload_tracepoints (utpp);
+ return current_inferior ()->top_target ()->upload_tracepoints (utpp);
}
int
target_upload_trace_state_variables (uploaded_tsv **utsvp)
{
- return current_top_target ()->upload_trace_state_variables (utsvp);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->upload_trace_state_variables (utsvp);
}
LONGEST
target_get_raw_trace_data (gdb_byte *buf, ULONGEST offset, LONGEST len)
{
- return current_top_target ()->get_raw_trace_data (buf, offset, len);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->get_raw_trace_data (buf, offset, len);
}
int
target_get_min_fast_tracepoint_insn_len ()
{
- return current_top_target ()->get_min_fast_tracepoint_insn_len ();
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->get_min_fast_tracepoint_insn_len ();
}
void
target_set_disconnected_tracing (int val)
{
- return current_top_target ()->set_disconnected_tracing (val);
+ return current_inferior ()->top_target ()->set_disconnected_tracing (val);
}
void
target_set_circular_trace_buffer (int val)
{
- return current_top_target ()->set_circular_trace_buffer (val);
+ return current_inferior ()->top_target ()->set_circular_trace_buffer (val);
}
void
target_set_trace_buffer_size (LONGEST val)
{
- return current_top_target ()->set_trace_buffer_size (val);
+ return current_inferior ()->top_target ()->set_trace_buffer_size (val);
}
bool
target_set_trace_notes (const char *user, const char *notes,
const char *stopnotes)
{
- return current_top_target ()->set_trace_notes (user, notes, stopnotes);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->set_trace_notes (user, notes, stopnotes);
}
bool
target_get_tib_address (ptid_t ptid, CORE_ADDR *addr)
{
- return current_top_target ()->get_tib_address (ptid, addr);
+ return current_inferior ()->top_target ()->get_tib_address (ptid, addr);
}
void
target_set_permissions ()
{
- return current_top_target ()->set_permissions ();
+ return current_inferior ()->top_target ()->set_permissions ();
}
bool
target_static_tracepoint_marker_at (CORE_ADDR addr,
static_tracepoint_marker *marker)
{
- return current_top_target ()->static_tracepoint_marker_at (addr, marker);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->static_tracepoint_marker_at (addr, marker);
}
std::vector<static_tracepoint_marker>
target_static_tracepoint_markers_by_strid (const char *marker_id)
{
- return current_top_target ()->static_tracepoint_markers_by_strid (marker_id);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->static_tracepoint_markers_by_strid (marker_id);
}
traceframe_info_up
target_traceframe_info ()
{
- return current_top_target ()->traceframe_info ();
+ return current_inferior ()->top_target ()->traceframe_info ();
}
bool
target_use_agent (bool use)
{
- return current_top_target ()->use_agent (use);
+ return current_inferior ()->top_target ()->use_agent (use);
}
bool
target_can_use_agent ()
{
- return current_top_target ()->can_use_agent ();
+ return current_inferior ()->top_target ()->can_use_agent ();
}
bool
target_augmented_libraries_svr4_read ()
{
- return current_top_target ()->augmented_libraries_svr4_read ();
+ return current_inferior ()->top_target ()->augmented_libraries_svr4_read ();
}
bool
target_supports_memory_tagging ()
{
- return current_top_target ()->supports_memory_tagging ();
+ return current_inferior ()->top_target ()->supports_memory_tagging ();
}
bool
target_fetch_memtags (CORE_ADDR address, size_t len, gdb::byte_vector &tags,
int type)
{
- return current_top_target ()->fetch_memtags (address, len, tags, type);
+ return current_inferior ()->top_target ()->fetch_memtags (address, len, tags, type);
}
bool
target_store_memtags (CORE_ADDR address, size_t len,
const gdb::byte_vector &tags, int type)
{
- return current_top_target ()->store_memtags (address, len, tags, type);
+ return current_inferior ()->top_target ()->store_memtags (address, len, tags, type);
}
void
target_log_command (const char *p)
{
- return current_top_target ()->log_command (p);
+ return current_inferior ()->top_target ()->log_command (p);
}
/* This is used to implement the various target commands. */
@@ -863,14 +902,14 @@ add_deprecated_target_alias (const target_info &tinfo, const char *alias)
void
target_kill (void)
{
- current_top_target ()->kill ();
+ current_inferior ()->top_target ()->kill ();
}
void
target_load (const char *arg, int from_tty)
{
target_dcache_invalidate ();
- current_top_target ()->load (arg, from_tty);
+ current_inferior ()->top_target ()->load (arg, from_tty);
}
/* Define it. */
@@ -883,7 +922,7 @@ target_terminal_state target_terminal::m_terminal_state
void
target_terminal::init (void)
{
- current_top_target ()->terminal_init ();
+ current_inferior ()->top_target ()->terminal_init ();
m_terminal_state = target_terminal_state::is_ours;
}
@@ -914,7 +953,7 @@ target_terminal::inferior (void)
if (inf->terminal_state != target_terminal_state::is_inferior)
{
- current_top_target ()->terminal_inferior ();
+ current_inferior ()->top_target ()->terminal_inferior ();
inf->terminal_state = target_terminal_state::is_inferior;
}
@@ -949,7 +988,7 @@ target_terminal::restore_inferior (void)
if (inf->terminal_state == target_terminal_state::is_ours_for_output)
{
set_current_inferior (inf);
- current_top_target ()->terminal_inferior ();
+ current_inferior ()->top_target ()->terminal_inferior ();
inf->terminal_state = target_terminal_state::is_inferior;
}
}
@@ -981,7 +1020,7 @@ target_terminal_is_ours_kind (target_terminal_state desired_state)
if (inf->terminal_state == target_terminal_state::is_inferior)
{
set_current_inferior (inf);
- current_top_target ()->terminal_save_inferior ();
+ current_inferior ()->top_target ()->terminal_save_inferior ();
}
}
@@ -996,9 +1035,9 @@ target_terminal_is_ours_kind (target_terminal_state desired_state)
{
set_current_inferior (inf);
if (desired_state == target_terminal_state::is_ours)
- current_top_target ()->terminal_ours ();
+ current_inferior ()->top_target ()->terminal_ours ();
else if (desired_state == target_terminal_state::is_ours_for_output)
- current_top_target ()->terminal_ours_for_output ();
+ current_inferior ()->top_target ()->terminal_ours_for_output ();
else
gdb_assert_not_reached ("unhandled desired state");
inf->terminal_state = desired_state;
@@ -1047,7 +1086,7 @@ target_terminal::ours_for_output ()
void
target_terminal::info (const char *arg, int from_tty)
{
- current_top_target ()->terminal_info (arg, from_tty);
+ current_inferior ()->top_target ()->terminal_info (arg, from_tty);
}
/* See target.h. */
@@ -1071,7 +1110,7 @@ static void
tcomplain (void)
{
error (_("You can't do that when your target is `%s'"),
- current_top_target ()->shortname ());
+ current_inferior ()->top_target ()->shortname ());
}
void
@@ -1206,8 +1245,9 @@ unpush_target_and_assert (struct target_ops *target)
void
pop_all_targets_above (enum strata above_stratum)
{
- while ((int) (current_top_target ()->stratum ()) > (int) above_stratum)
- unpush_target_and_assert (current_top_target ());
+ while ((int) (current_inferior ()->top_target ()->stratum ())
+ > (int) above_stratum)
+ unpush_target_and_assert (current_inferior ()->top_target ());
}
/* See target.h. */
@@ -1215,8 +1255,9 @@ pop_all_targets_above (enum strata above_stratum)
void
pop_all_targets_at_and_above (enum strata stratum)
{
- while ((int) (current_top_target ()->stratum ()) >= (int) stratum)
- unpush_target_and_assert (current_top_target ());
+ while ((int) (current_inferior ()->top_target ()->stratum ())
+ >= (int) stratum)
+ unpush_target_and_assert (current_inferior ()->top_target ());
}
void
@@ -1246,7 +1287,7 @@ CORE_ADDR
target_translate_tls_address (struct objfile *objfile, CORE_ADDR offset)
{
volatile CORE_ADDR addr = 0;
- struct target_ops *target = current_top_target ();
+ struct target_ops *target = current_inferior ()->top_target ();
struct gdbarch *gdbarch = target_gdbarch ();
if (gdbarch_fetch_tls_load_module_address_p (gdbarch))
@@ -1765,7 +1806,8 @@ target_xfer_partial (struct target_ops *ops,
int
target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
{
- if (target_read (current_top_target (), TARGET_OBJECT_MEMORY, NULL,
+ if (target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1795,7 +1837,8 @@ target_read_uint32 (CORE_ADDR memaddr, uint32_t *result)
int
target_read_raw_memory (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
{
- if (target_read (current_top_target (), TARGET_OBJECT_RAW_MEMORY, NULL,
+ if (target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_RAW_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1808,7 +1851,8 @@ target_read_raw_memory (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int
target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
{
- if (target_read (current_top_target (), TARGET_OBJECT_STACK_MEMORY, NULL,
+ if (target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_STACK_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1821,7 +1865,8 @@ target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int
target_read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
{
- if (target_read (current_top_target (), TARGET_OBJECT_CODE_MEMORY, NULL,
+ if (target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_CODE_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1837,7 +1882,8 @@ target_read_code (CORE_ADDR memaddr, gdb_byte *myaddr, ssize_t len)
int
target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
{
- if (target_write (current_top_target (), TARGET_OBJECT_MEMORY, NULL,
+ if (target_write (current_inferior ()->top_target (),
+ TARGET_OBJECT_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1853,7 +1899,8 @@ target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
int
target_write_raw_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
{
- if (target_write (current_top_target (), TARGET_OBJECT_RAW_MEMORY, NULL,
+ if (target_write (current_inferior ()->top_target (),
+ TARGET_OBJECT_RAW_MEMORY, NULL,
myaddr, memaddr, len) == len)
return 0;
else
@@ -1865,7 +1912,8 @@ target_write_raw_memory (CORE_ADDR memaddr, const gdb_byte *myaddr, ssize_t len)
std::vector<mem_region>
target_memory_map (void)
{
- std::vector<mem_region> result = current_top_target ()->memory_map ();
+ target_ops *target = current_inferior ()->top_target ();
+ std::vector<mem_region> result = target->memory_map ();
if (result.empty ())
return result;
@@ -1895,13 +1943,13 @@ target_memory_map (void)
void
target_flash_erase (ULONGEST address, LONGEST length)
{
- current_top_target ()->flash_erase (address, length);
+ current_inferior ()->top_target ()->flash_erase (address, length);
}
void
target_flash_done (void)
{
- current_top_target ()->flash_done ();
+ current_inferior ()->top_target ()->flash_done ();
}
static void
@@ -2356,7 +2404,9 @@ target_insert_breakpoint (struct gdbarch *gdbarch,
return 1;
}
- return current_top_target ()->insert_breakpoint (gdbarch, bp_tgt);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->insert_breakpoint (gdbarch, bp_tgt);
}
/* See target.h. */
@@ -2376,7 +2426,9 @@ target_remove_breakpoint (struct gdbarch *gdbarch,
return 1;
}
- return current_top_target ()->remove_breakpoint (gdbarch, bp_tgt, reason);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->remove_breakpoint (gdbarch, bp_tgt, reason);
}
static void
@@ -2391,7 +2443,9 @@ info_target_command (const char *args, int from_tty)
objfile_name (objf));
}
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
if (!t->has_memory ())
continue;
@@ -2511,7 +2565,7 @@ target_detach (inferior *inf, int from_tty)
target. */
auto proc_target_ref = target_ops_ref::new_reference (inf->process_target ());
- current_top_target ()->detach (inf, from_tty);
+ current_inferior ()->top_target ()->detach (inf, from_tty);
process_stratum_target *proc_target
= as_process_stratum_target (proc_target_ref.get ());
@@ -2533,7 +2587,7 @@ target_disconnect (const char *args, int from_tty)
disconnecting. */
remove_breakpoints ();
- current_top_target ()->disconnect (args, from_tty);
+ current_inferior ()->top_target ()->disconnect (args, from_tty);
}
/* See target/target.h. */
@@ -2542,7 +2596,7 @@ ptid_t
target_wait (ptid_t ptid, struct target_waitstatus *status,
target_wait_flags options)
{
- target_ops *target = current_top_target ();
+ target_ops *target = current_inferior ()->top_target ();
if (!target->can_async_p ())
gdb_assert ((options & TARGET_WNOHANG) == 0);
@@ -2564,7 +2618,7 @@ default_target_wait (struct target_ops *ops,
std::string
target_pid_to_str (ptid_t ptid)
{
- return current_top_target ()->pid_to_str (ptid);
+ return current_inferior ()->top_target ()->pid_to_str (ptid);
}
const char *
@@ -2572,7 +2626,7 @@ target_thread_name (struct thread_info *info)
{
gdb_assert (info->inf == current_inferior ());
- return current_top_target ()->thread_name (info);
+ return current_inferior ()->top_target ()->thread_name (info);
}
struct thread_info *
@@ -2580,8 +2634,9 @@ target_thread_handle_to_thread_info (const gdb_byte *thread_handle,
int handle_len,
struct inferior *inf)
{
- return current_top_target ()->thread_handle_to_thread_info (thread_handle,
- handle_len, inf);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->thread_handle_to_thread_info (thread_handle, handle_len, inf);
}
/* See target.h. */
@@ -2589,7 +2644,9 @@ target_thread_handle_to_thread_info (const gdb_byte *thread_handle,
gdb::byte_vector
target_thread_info_to_thread_handle (struct thread_info *tip)
{
- return current_top_target ()->thread_info_to_thread_handle (tip);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->thread_info_to_thread_handle (tip);
}
void
@@ -2599,7 +2656,7 @@ target_resume (ptid_t ptid, int step, enum gdb_signal signal)
target_dcache_invalidate ();
- current_top_target ()->resume (ptid, step, signal);
+ current_inferior ()->top_target ()->resume (ptid, step, signal);
registers_changed_ptid (curr_target, ptid);
/* We only set the internal executing state here. The user/frontend
@@ -2620,7 +2677,7 @@ target_commit_resume (void)
if (defer_target_commit_resume)
return;
- current_top_target ()->commit_resume ();
+ current_inferior ()->top_target ()->commit_resume ();
}
/* See target.h. */
@@ -2634,13 +2691,13 @@ make_scoped_defer_target_commit_resume ()
void
target_pass_signals (gdb::array_view<const unsigned char> pass_signals)
{
- current_top_target ()->pass_signals (pass_signals);
+ current_inferior ()->top_target ()->pass_signals (pass_signals);
}
void
target_program_signals (gdb::array_view<const unsigned char> program_signals)
{
- current_top_target ()->program_signals (program_signals);
+ current_inferior ()->top_target ()->program_signals (program_signals);
}
static bool
@@ -2658,7 +2715,9 @@ default_follow_fork (struct target_ops *self, bool follow_child,
bool
target_follow_fork (bool follow_child, bool detach_fork)
{
- return current_top_target ()->follow_fork (follow_child, detach_fork);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->follow_fork (follow_child, detach_fork);
}
/* Target wrapper for follow exec hook. */
@@ -2666,7 +2725,7 @@ target_follow_fork (bool follow_child, bool detach_fork)
void
target_follow_exec (struct inferior *inf, const char *execd_pathname)
{
- current_top_target ()->follow_exec (inf, execd_pathname);
+ current_inferior ()->top_target ()->follow_exec (inf, execd_pathname);
}
static void
@@ -2680,7 +2739,7 @@ void
target_mourn_inferior (ptid_t ptid)
{
gdb_assert (ptid.pid () == inferior_ptid.pid ());
- current_top_target ()->mourn_inferior ();
+ current_inferior ()->top_target ()->mourn_inferior ();
/* We no longer need to keep handles on any of the object files.
Make sure to release them to avoid unnecessarily locking any
@@ -2708,7 +2767,8 @@ default_search_memory (struct target_ops *self,
{
auto read_memory = [=] (CORE_ADDR addr, gdb_byte *result, size_t len)
{
- return target_read (current_top_target (), TARGET_OBJECT_MEMORY, NULL,
+ return target_read (current_inferior ()->top_target (),
+ TARGET_OBJECT_MEMORY, NULL,
result, addr, len) == len;
};
@@ -2729,8 +2789,10 @@ target_search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
const gdb_byte *pattern, ULONGEST pattern_len,
CORE_ADDR *found_addrp)
{
- return current_top_target ()->search_memory (start_addr, search_space_len,
- pattern, pattern_len, found_addrp);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->search_memory (start_addr, search_space_len, pattern,
+ pattern_len, found_addrp);
}
/* Look through the currently pushed targets. If none of them will
@@ -2740,7 +2802,9 @@ target_search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
void
target_require_runnable (void)
{
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
/* If this target knows how to create a new program, then
assume we will still be able to after killing the current
@@ -2830,7 +2894,9 @@ struct target_ops *
find_attach_target (void)
{
/* If a target on the current stack can attach, use it. */
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
if (t->can_attach ())
return t;
@@ -2846,7 +2912,9 @@ struct target_ops *
find_run_target (void)
{
/* If a target on the current stack can run, use it. */
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
if (t->can_create_inferior ())
return t;
@@ -2905,7 +2973,7 @@ find_default_supports_disable_randomization (struct target_ops *self)
int
target_supports_disable_randomization (void)
{
- return current_top_target ()->supports_disable_randomization ();
+ return current_inferior ()->top_target ()->supports_disable_randomization ();
}
/* See target/target.h. */
@@ -2913,7 +2981,7 @@ target_supports_disable_randomization (void)
int
target_supports_multi_process (void)
{
- return current_top_target ()->supports_multi_process ();
+ return current_inferior ()->top_target ()->supports_multi_process ();
}
/* See target.h. */
@@ -2943,7 +3011,7 @@ target_thread_address_space (ptid_t ptid)
{
struct address_space *aspace;
- aspace = current_top_target ()->thread_address_space (ptid);
+ aspace = current_inferior ()->top_target ()->thread_address_space (ptid);
gdb_assert (aspace != NULL);
return aspace;
@@ -2996,7 +3064,9 @@ target_ops::can_run ()
int
target_can_run ()
{
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
if (t->can_run ())
return 1;
@@ -3679,13 +3749,13 @@ target_close (struct target_ops *targ)
int
target_thread_alive (ptid_t ptid)
{
- return current_top_target ()->thread_alive (ptid);
+ return current_inferior ()->top_target ()->thread_alive (ptid);
}
void
target_update_thread_list (void)
{
- current_top_target ()->update_thread_list ();
+ current_inferior ()->top_target ()->update_thread_list ();
}
void
@@ -3697,7 +3767,7 @@ target_stop (ptid_t ptid)
return;
}
- current_top_target ()->stop (ptid);
+ current_inferior ()->top_target ()->stop (ptid);
}
void
@@ -3709,7 +3779,7 @@ target_interrupt ()
return;
}
- current_top_target ()->interrupt ();
+ current_inferior ()->top_target ()->interrupt ();
}
/* See target.h. */
@@ -3739,7 +3809,7 @@ target_pass_ctrlc (void)
through the target_stack. */
scoped_restore_current_inferior restore_inferior;
set_current_inferior (inf);
- current_top_target ()->pass_ctrlc ();
+ current_inferior ()->top_target ()->pass_ctrlc ();
return;
}
}
@@ -3834,7 +3904,7 @@ target_options_to_string (target_wait_flags target_options)
void
target_fetch_registers (struct regcache *regcache, int regno)
{
- current_top_target ()->fetch_registers (regcache, regno);
+ current_inferior ()->top_target ()->fetch_registers (regcache, regno);
if (targetdebug)
regcache->debug_print_register ("target_fetch_registers", regno);
}
@@ -3845,7 +3915,7 @@ target_store_registers (struct regcache *regcache, int regno)
if (!may_write_registers)
error (_("Writing to registers is not allowed (regno %d)"), regno);
- current_top_target ()->store_registers (regcache, regno);
+ current_inferior ()->top_target ()->store_registers (regcache, regno);
if (targetdebug)
{
regcache->debug_print_register ("target_store_registers", regno);
@@ -3855,7 +3925,7 @@ target_store_registers (struct regcache *regcache, int regno)
int
target_core_of_thread (ptid_t ptid)
{
- return current_top_target ()->core_of_thread (ptid);
+ return current_inferior ()->top_target ()->core_of_thread (ptid);
}
int
@@ -3893,14 +3963,16 @@ default_verify_memory (struct target_ops *self,
const gdb_byte *data, CORE_ADDR memaddr, ULONGEST size)
{
/* Start over from the top of the target stack. */
- return simple_verify_memory (current_top_target (),
+ return simple_verify_memory (current_inferior ()->top_target (),
data, memaddr, size);
}
int
target_verify_memory (const gdb_byte *data, CORE_ADDR memaddr, ULONGEST size)
{
- return current_top_target ()->verify_memory (data, memaddr, size);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->verify_memory (data, memaddr, size);
}
/* The documentation for this function is in its prototype declaration in
@@ -3910,7 +3982,9 @@ int
target_insert_mask_watchpoint (CORE_ADDR addr, CORE_ADDR mask,
enum target_hw_bp_type rw)
{
- return current_top_target ()->insert_mask_watchpoint (addr, mask, rw);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->insert_mask_watchpoint (addr, mask, rw);
}
/* The documentation for this function is in its prototype declaration in
@@ -3920,7 +3994,9 @@ int
target_remove_mask_watchpoint (CORE_ADDR addr, CORE_ADDR mask,
enum target_hw_bp_type rw)
{
- return current_top_target ()->remove_mask_watchpoint (addr, mask, rw);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->remove_mask_watchpoint (addr, mask, rw);
}
/* The documentation for this function is in its prototype declaration
@@ -3929,7 +4005,9 @@ target_remove_mask_watchpoint (CORE_ADDR addr, CORE_ADDR mask,
int
target_masked_watch_num_registers (CORE_ADDR addr, CORE_ADDR mask)
{
- return current_top_target ()->masked_watch_num_registers (addr, mask);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->masked_watch_num_registers (addr, mask);
}
/* The documentation for this function is in its prototype declaration
@@ -3938,7 +4016,7 @@ target_masked_watch_num_registers (CORE_ADDR addr, CORE_ADDR mask)
int
target_ranged_break_num_registers (void)
{
- return current_top_target ()->ranged_break_num_registers ();
+ return current_inferior ()->top_target ()->ranged_break_num_registers ();
}
/* See target.h. */
@@ -3946,7 +4024,7 @@ target_ranged_break_num_registers (void)
struct btrace_target_info *
target_enable_btrace (ptid_t ptid, const struct btrace_config *conf)
{
- return current_top_target ()->enable_btrace (ptid, conf);
+ return current_inferior ()->top_target ()->enable_btrace (ptid, conf);
}
/* See target.h. */
@@ -3954,7 +4032,7 @@ target_enable_btrace (ptid_t ptid, const struct btrace_config *conf)
void
target_disable_btrace (struct btrace_target_info *btinfo)
{
- current_top_target ()->disable_btrace (btinfo);
+ current_inferior ()->top_target ()->disable_btrace (btinfo);
}
/* See target.h. */
@@ -3962,7 +4040,7 @@ target_disable_btrace (struct btrace_target_info *btinfo)
void
target_teardown_btrace (struct btrace_target_info *btinfo)
{
- current_top_target ()->teardown_btrace (btinfo);
+ current_inferior ()->top_target ()->teardown_btrace (btinfo);
}
/* See target.h. */
@@ -3972,7 +4050,9 @@ target_read_btrace (struct btrace_data *btrace,
struct btrace_target_info *btinfo,
enum btrace_read_type type)
{
- return current_top_target ()->read_btrace (btrace, btinfo, type);
+ target_ops *target = current_inferior ()->top_target ();
+
+ return target->read_btrace (btrace, btinfo, type);
}
/* See target.h. */
@@ -3980,7 +4060,7 @@ target_read_btrace (struct btrace_data *btrace,
const struct btrace_config *
target_btrace_conf (const struct btrace_target_info *btinfo)
{
- return current_top_target ()->btrace_conf (btinfo);
+ return current_inferior ()->top_target ()->btrace_conf (btinfo);
}
/* See target.h. */
@@ -3988,7 +4068,7 @@ target_btrace_conf (const struct btrace_target_info *btinfo)
void
target_stop_recording (void)
{
- current_top_target ()->stop_recording ();
+ current_inferior ()->top_target ()->stop_recording ();
}
/* See target.h. */
@@ -3996,7 +4076,7 @@ target_stop_recording (void)
void
target_save_record (const char *filename)
{
- current_top_target ()->save_record (filename);
+ current_inferior ()->top_target ()->save_record (filename);
}
/* See target.h. */
@@ -4004,7 +4084,7 @@ target_save_record (const char *filename)
int
target_supports_delete_record ()
{
- return current_top_target ()->supports_delete_record ();
+ return current_inferior ()->top_target ()->supports_delete_record ();
}
/* See target.h. */
@@ -4012,7 +4092,7 @@ target_supports_delete_record ()
void
target_delete_record (void)
{
- current_top_target ()->delete_record ();
+ current_inferior ()->top_target ()->delete_record ();
}
/* See target.h. */
@@ -4020,7 +4100,7 @@ target_delete_record (void)
enum record_method
target_record_method (ptid_t ptid)
{
- return current_top_target ()->record_method (ptid);
+ return current_inferior ()->top_target ()->record_method (ptid);
}
/* See target.h. */
@@ -4028,7 +4108,7 @@ target_record_method (ptid_t ptid)
int
target_record_is_replaying (ptid_t ptid)
{
- return current_top_target ()->record_is_replaying (ptid);
+ return current_inferior ()->top_target ()->record_is_replaying (ptid);
}
/* See target.h. */
@@ -4036,7 +4116,7 @@ target_record_is_replaying (ptid_t ptid)
int
target_record_will_replay (ptid_t ptid, int dir)
{
- return current_top_target ()->record_will_replay (ptid, dir);
+ return current_inferior ()->top_target ()->record_will_replay (ptid, dir);
}
/* See target.h. */
@@ -4044,7 +4124,7 @@ target_record_will_replay (ptid_t ptid, int dir)
void
target_record_stop_replaying (void)
{
- current_top_target ()->record_stop_replaying ();
+ current_inferior ()->top_target ()->record_stop_replaying ();
}
/* See target.h. */
@@ -4052,7 +4132,7 @@ target_record_stop_replaying (void)
void
target_goto_record_begin (void)
{
- current_top_target ()->goto_record_begin ();
+ current_inferior ()->top_target ()->goto_record_begin ();
}
/* See target.h. */
@@ -4060,7 +4140,7 @@ target_goto_record_begin (void)
void
target_goto_record_end (void)
{
- current_top_target ()->goto_record_end ();
+ current_inferior ()->top_target ()->goto_record_end ();
}
/* See target.h. */
@@ -4068,7 +4148,7 @@ target_goto_record_end (void)
void
target_goto_record (ULONGEST insn)
{
- current_top_target ()->goto_record (insn);
+ current_inferior ()->top_target ()->goto_record (insn);
}
/* See target.h. */
@@ -4076,7 +4156,7 @@ target_goto_record (ULONGEST insn)
void
target_insn_history (int size, gdb_disassembly_flags flags)
{
- current_top_target ()->insn_history (size, flags);
+ current_inferior ()->top_target ()->insn_history (size, flags);
}
/* See target.h. */
@@ -4085,7 +4165,7 @@ void
target_insn_history_from (ULONGEST from, int size,
gdb_disassembly_flags flags)
{
- current_top_target ()->insn_history_from (from, size, flags);
+ current_inferior ()->top_target ()->insn_history_from (from, size, flags);
}
/* See target.h. */
@@ -4094,7 +4174,7 @@ void
target_insn_history_range (ULONGEST begin, ULONGEST end,
gdb_disassembly_flags flags)
{
- current_top_target ()->insn_history_range (begin, end, flags);
+ current_inferior ()->top_target ()->insn_history_range (begin, end, flags);
}
/* See target.h. */
@@ -4102,7 +4182,7 @@ target_insn_history_range (ULONGEST begin, ULONGEST end,
void
target_call_history (int size, record_print_flags flags)
{
- current_top_target ()->call_history (size, flags);
+ current_inferior ()->top_target ()->call_history (size, flags);
}
/* See target.h. */
@@ -4110,7 +4190,7 @@ target_call_history (int size, record_print_flags flags)
void
target_call_history_from (ULONGEST begin, int size, record_print_flags flags)
{
- current_top_target ()->call_history_from (begin, size, flags);
+ current_inferior ()->top_target ()->call_history_from (begin, size, flags);
}
/* See target.h. */
@@ -4118,7 +4198,7 @@ target_call_history_from (ULONGEST begin, int size, record_print_flags flags)
void
target_call_history_range (ULONGEST begin, ULONGEST end, record_print_flags flags)
{
- current_top_target ()->call_history_range (begin, end, flags);
+ current_inferior ()->top_target ()->call_history_range (begin, end, flags);
}
/* See target.h. */
@@ -4126,7 +4206,7 @@ target_call_history_range (ULONGEST begin, ULONGEST end, record_print_flags flag
const struct frame_unwind *
target_get_unwinder (void)
{
- return current_top_target ()->get_unwinder ();
+ return current_inferior ()->top_target ()->get_unwinder ();
}
/* See target.h. */
@@ -4134,7 +4214,7 @@ target_get_unwinder (void)
const struct frame_unwind *
target_get_tailcall_unwinder (void)
{
- return current_top_target ()->get_tailcall_unwinder ();
+ return current_inferior ()->top_target ()->get_tailcall_unwinder ();
}
/* See target.h. */
@@ -4142,7 +4222,7 @@ target_get_tailcall_unwinder (void)
void
target_prepare_to_generate_core (void)
{
- current_top_target ()->prepare_to_generate_core ();
+ current_inferior ()->top_target ()->prepare_to_generate_core ();
}
/* See target.h. */
@@ -4150,7 +4230,7 @@ target_prepare_to_generate_core (void)
void
target_done_generating_core (void)
{
- current_top_target ()->done_generating_core ();
+ current_inferior ()->top_target ()->done_generating_core ();
}
@@ -4218,7 +4298,9 @@ maintenance_print_target_stack (const char *cmd, int from_tty)
{
printf_filtered (_("The current target stack is:\n"));
- for (target_ops *t = current_top_target (); t != NULL; t = t->beneath ())
+ for (target_ops *t = current_inferior ()->top_target ();
+ t != NULL;
+ t = t->beneath ())
{
if (t->stratum () == debug_stratum)
continue;
@@ -4232,7 +4314,7 @@ void
target_async (int enable)
{
infrun_async (enable);
- current_top_target ()->async (enable);
+ current_inferior ()->top_target ()->async (enable);
}
/* See target.h. */
@@ -4240,7 +4322,7 @@ target_async (int enable)
void
target_thread_events (int enable)
{
- current_top_target ()->thread_events (enable);
+ current_inferior ()->top_target ()->thread_events (enable);
}
/* Controls if targets can report that they can/are async. This is
@@ -4280,7 +4362,7 @@ maint_show_target_async_command (struct ui_file *file, int from_tty,
static int
target_always_non_stop_p (void)
{
- return current_top_target ()->always_non_stop_p ();
+ return current_inferior ()->top_target ()->always_non_stop_p ();
}
/* See target.h. */
diff --git a/gdb/target.h b/gdb/target.h
index 482952e..5d14edb 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1385,11 +1385,6 @@ private:
target_ops *m_stack[(int) debug_stratum + 1] {};
};
-/* The ops structure for our "current" target process. This should
- never be NULL. If there is no target, it points to the dummy_target. */
-
-extern target_ops *current_top_target ();
-
/* Return the dummy target. */
extern target_ops *get_dummy_target ();
diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c
index d82cac8..33ce86b 100644
--- a/gdb/tracefile-tfile.c
+++ b/gdb/tracefile-tfile.c
@@ -310,7 +310,7 @@ tfile_write_tdesc (struct trace_file_writer *self)
= (struct tfile_trace_file_writer *) self;
gdb::optional<std::string> tdesc
- = target_fetch_description_xml (current_top_target ());
+ = target_fetch_description_xml (current_inferior ()->top_target ());
if (!tdesc)
return;
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index bf8a63c..48d72d6 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -3812,7 +3812,8 @@ sdata_make_value (struct gdbarch *gdbarch, struct internalvar *var,
{
/* We need to read the whole object before we know its size. */
gdb::optional<gdb::byte_vector> buf
- = target_read_alloc (current_top_target (), TARGET_OBJECT_STATIC_TRACE_DATA,
+ = target_read_alloc (current_inferior ()->top_target (),
+ TARGET_OBJECT_STATIC_TRACE_DATA,
NULL);
if (buf)
{
diff --git a/gdb/valops.c b/gdb/valops.c
index fec821a..f86c981 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -1040,7 +1040,7 @@ read_value_memory (struct value *val, LONGEST bit_offset,
enum target_xfer_status status;
ULONGEST xfered_partial;
- status = target_xfer_partial (current_top_target (),
+ status = target_xfer_partial (current_inferior ()->top_target (),
object, NULL,
buffer + xfered_total * unit_size, NULL,
memaddr + xfered_total,
@@ -1286,7 +1286,8 @@ value_assign (struct value *toval, struct value *fromval)
case lval_register:
case lval_computed:
- gdb::observers::target_changed.notify (current_top_target ());
+ gdb::observers::target_changed.notify
+ (current_inferior ()->top_target ());
/* Having destroyed the frame cache, restore the selected
frame. */
diff --git a/gdb/valprint.c b/gdb/valprint.c
index c089ee2..baf50f7 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -42,6 +42,7 @@
#include "count-one-bits.h"
#include "c-lang.h"
#include "cp-abi.h"
+#include "inferior.h"
/* Maximum number of wchars returned from wchar_iterate. */
#define MAX_WCHARS 4
@@ -1848,9 +1849,8 @@ print_function_pointer_address (const struct value_print_options *options,
CORE_ADDR address,
struct ui_file *stream)
{
- CORE_ADDR func_addr
- = gdbarch_convert_from_func_ptr_addr (gdbarch, address,
- current_top_target ());
+ CORE_ADDR func_addr = gdbarch_convert_from_func_ptr_addr
+ (gdbarch, address, current_inferior ()->top_target ());
/* If the function pointer is represented by a description, print
the address of the description. */
diff --git a/gdb/value.c b/gdb/value.c
index 9527186..3bd81e7 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -45,6 +45,7 @@
#include "gdbsupport/array-view.h"
#include "cli/cli-style.h"
#include "expop.h"
+#include "inferior.h"
/* Definition of a user function. */
struct internal_function
@@ -3159,7 +3160,8 @@ value_fn_field (struct value **arg1p, struct fn_field *f,
set_value_address (v,
gdbarch_convert_from_func_ptr_addr
- (gdbarch, BMSYMBOL_VALUE_ADDRESS (msym), current_top_target ()));
+ (gdbarch, BMSYMBOL_VALUE_ADDRESS (msym),
+ current_inferior ()->top_target ()));
}
if (arg1p)
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index a06b448..97aa3da 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -487,7 +487,7 @@ display_one_tib (ptid_t ptid)
return -1;
}
- if (target_read (current_top_target (), TARGET_OBJECT_MEMORY,
+ if (target_read (current_inferior ()->top_target (), TARGET_OBJECT_MEMORY,
NULL, tib, thread_local_base, tib_size) != tib_size)
{
printf_filtered (_("Unable to read thread information "