/* Trace file support in GDB.
- Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ Copyright (C) 1997-2018 Free Software Foundation, Inc.
This file is part of GDB.
}
static void
-trace_save_command (char *args, int from_tty)
+tsave_command (const char *args, int from_tty)
{
int target_does_save = 0;
char **argv;
if (args == NULL)
error_no_arg (_("file in which to save trace data"));
- argv = gdb_buildargv (args);
- back_to = make_cleanup_freeargv (argv);
+ gdb_argv built_argv (args);
+ argv = built_argv.get ();
for (; *argv; ++argv)
{
if (strcmp (*argv, "-r") == 0)
target_does_save = 1;
- if (strcmp (*argv, "-ctf") == 0)
+ else if (strcmp (*argv, "-ctf") == 0)
generate_ctf = 1;
else if (**argv == '-')
error (_("unknown option `%s'"), *argv);
else
writer = tfile_trace_file_writer_new ();
- make_cleanup (trace_file_writer_xfree, writer);
+ back_to = make_cleanup (trace_file_writer_xfree, writer);
trace_save (filename, writer, target_does_save);
void
tracefile_fetch_registers (struct regcache *regcache, int regno)
{
- struct gdbarch *gdbarch = get_regcache_arch (regcache);
+ struct gdbarch *gdbarch = regcache->arch ();
struct tracepoint *tp = get_tracepoint (get_tracepoint_number ());
int regn;
/* We can often usefully guess that the PC is going to be the same
as the address of the tracepoint. */
- if (tp == NULL || tp->base.loc == NULL)
+ if (tp == NULL || tp->loc == NULL)
return;
/* But don't try to guess if tracepoint is multi-location... */
- if (tp->base.loc->next)
+ if (tp->loc->next)
{
warning (_("Tracepoint %d has multiple "
"locations, cannot infer $pc"),
- tp->base.number);
+ tp->number);
return;
}
/* ... or does while-stepping. */
{
warning (_("Tracepoint %d does while-stepping, "
"cannot infer $pc"),
- tp->base.number);
+ tp->number);
return;
}
/* Guess what we can from the tracepoint location. */
gdbarch_guess_tracepoint_registers (gdbarch, regcache,
- tp->base.loc->address);
+ tp->loc->address);
}
/* This is the implementation of target_ops method to_has_all_memory. */
ops->to_magic = OPS_MAGIC;
}
-extern initialize_file_ftype _initialize_tracefile;
-
void
_initialize_tracefile (void)
{
- add_com ("tsave", class_trace, trace_save_command, _("\
+ add_com ("tsave", class_trace, tsave_command, _("\
Save the trace data to a file.\n\
Use the '-ctf' option to save the data to CTF format.\n\
Use the '-r' option to direct the target to save directly to the file,\n\