X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fbsd-kvm.c;h=111488d3bd42f5a5b4491c4e137aac9db0cfad3c;hb=e3169fe0bb9b9190f0c7849864f0bb68cb8c2d5b;hp=434c1928b79c87eb97fca9f3091e31410c04de76;hpb=b7a08269ca53323c5fe190370da281358dfee6b2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c index 434c1928b7..111488d3bd 100644 --- a/gdb/bsd-kvm.c +++ b/gdb/bsd-kvm.c @@ -1,6 +1,6 @@ /* BSD Kernel Data Access Library (libkvm) interface. - Copyright (C) 2004-2018 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -24,9 +24,12 @@ #include "frame.h" #include "regcache.h" #include "target.h" +#include "process-stratum-target.h" #include "value.h" -#include "gdbcore.h" /* for get_exec_file */ +#include "gdbcore.h" +#include "inferior.h" /* for get_exec_file */ #include "gdbthread.h" +#include "gdbsupport/pathstuff.h" #include #include @@ -70,11 +73,10 @@ static const target_info bsd_kvm_target_info = { Optionally specify the filename of a core dump.") }; -class bsd_kvm_target final : public target_ops +class bsd_kvm_target final : public process_stratum_target { public: - bsd_kvm_target () - { this->to_stratum = process_stratum; } + bsd_kvm_target () = default; const target_info &info () const override { return bsd_kvm_target_info; } @@ -91,7 +93,7 @@ public: void files_info () override; bool thread_alive (ptid_t ptid) override; - const char *pid_to_str (ptid_t) override; + std::string pid_to_str (ptid_t) override; bool has_memory () override { return true; } bool has_stack () override { return true; } @@ -105,7 +107,7 @@ static void bsd_kvm_target_open (const char *arg, int from_tty) { char errbuf[_POSIX2_LINE_MAX]; - char *execfile = NULL; + const char *execfile = NULL; kvm_t *temp_kd; char *filename = NULL; @@ -113,14 +115,13 @@ bsd_kvm_target_open (const char *arg, int from_tty) if (arg) { - char *temp; - filename = tilde_expand (arg); if (filename[0] != '/') { - temp = concat (current_directory, "/", filename, (char *)NULL); + gdb::unique_xmalloc_ptr temp (gdb_abspath (filename)); + xfree (filename); - filename = temp; + filename = temp.release (); } } @@ -367,12 +368,10 @@ bsd_kvm_target::thread_alive (ptid_t ptid) return true; } -const char * +std::string bsd_kvm_target::pid_to_str (ptid_t ptid) { - static char buf[64]; - xsnprintf (buf, sizeof buf, ""); - return buf; + return ""; } /* Add the libkvm interface to the list of all possible targets and @@ -413,5 +412,5 @@ Generic command for manipulating the kernel memory interface."), ptid (1, 1, 2) -> kvm inferior 1, process 2 ptid (1, 1, n) -> kvm inferior 1, process n */ - bsd_kvm_ptid = ptid_build (1, 1, 0); + bsd_kvm_ptid = ptid_t (1, 1, 0); }