X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftracefile-tfile.c;h=c1a4a49337246e34d9586e4a2a8d8db836002d92;hb=5b6d1e4fa4fc6827c7b3f0e99ff120dfa14d65d2;hp=6581cb133dcc1375e9cfd36bd2b02d2b3994033b;hpb=a70b814420059e1f2de2130d532ddd7b2b2500fc;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c index 6581cb133d..c1a4a49337 100644 --- a/gdb/tracefile-tfile.c +++ b/gdb/tracefile-tfile.c @@ -1,6 +1,6 @@ /* Trace file TFILE format support in GDB. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -20,8 +20,8 @@ #include "defs.h" #include "tracefile.h" #include "readline/tilde.h" -#include "common/filestuff.h" -#include "common/rsp-low.h" /* bin2hex */ +#include "gdbsupport/filestuff.h" +#include "gdbsupport/rsp-low.h" /* bin2hex */ #include "regcache.h" #include "inferior.h" #include "gdbthread.h" @@ -31,7 +31,8 @@ #include "remote.h" #include "xml-tdesc.h" #include "target-descriptions.h" -#include "common/buffer.h" +#include "gdbsupport/buffer.h" +#include "gdbsupport/pathstuff.h" #include #ifndef O_LARGEFILE @@ -43,7 +44,8 @@ static const target_info tfile_target_info = { "tfile", N_("Local trace dump file"), - N_("Use a trace file as a target. Specify the filename of the trace file.") + N_("Use a trace file as a target.\n\ +Specify the filename of the trace file.") }; class tfile_target final : public tracefile_target @@ -469,8 +471,7 @@ tfile_target_open (const char *arg, int from_tty) gdb::unique_xmalloc_ptr filename (tilde_expand (arg)); if (!IS_ABSOLUTE_PATH (filename.get ())) - filename.reset (concat (current_directory, "/", filename.get (), - (char *) NULL)); + filename = gdb_abspath (filename.get ()); flags = O_BINARY | O_LARGEFILE; flags |= O_RDONLY; @@ -547,16 +548,16 @@ tfile_target_open (const char *arg, int from_tty) if (trace_regblock_size == 0) error (_("No register block size recorded in trace file")); } - catch (const gdb_exception_RETURN_MASK_ALL &ex) + catch (const gdb_exception &ex) { /* Remove the partially set up target. */ unpush_target (&tfile_ops); - throw_exception (ex); + throw; } inferior_appeared (current_inferior (), TFILE_PID); inferior_ptid = ptid_t (TFILE_PID); - add_thread_silent (inferior_ptid); + add_thread_silent (&tfile_ops, inferior_ptid); if (ts->traceframe_count <= 0) warning (_("No traceframes present in this file.")); @@ -615,8 +616,7 @@ tfile_interp_line (char *line, struct uploaded_tp **utpp, void tfile_target::close () { - if (trace_fd < 0) - return; + gdb_assert (trace_fd != -1); inferior_ptid = null_ptid; /* Avoid confusion from thread stuff. */ exit_inferior_silent (current_inferior ());