diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2018-01-17 12:33:57 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2018-01-17 12:34:50 -0500 |
commit | 4d9b86e17505063c96a01d40cdf5b4fc2080a798 (patch) | |
tree | e345594b4540d2b6a7cfa773eb972d17507731cd /gdb/linux-nat.c | |
parent | a7b2d0fbeb4ca22ffbf56d19d06b7d1cb774e383 (diff) | |
download | gdb-4d9b86e17505063c96a01d40cdf5b4fc2080a798.zip gdb-4d9b86e17505063c96a01d40cdf5b4fc2080a798.tar.gz gdb-4d9b86e17505063c96a01d40cdf5b4fc2080a798.tar.bz2 |
Make linux_ptrace_attach_fail_reason return an std::string
This patch makes linux_ptrace_attach_fail_reason and
linux_ptrace_attach_fail_reason_string return std::string. It also
replaces usages of struct buffer with std::string. This allows getting
rid of a cleanup in in linux_ptrace_attach_fail_reason_string and
simplifies the code in general.
Something that looks odd to me is that in
linux_ptrace_attach_fail_reason, if the two messages are appended, there
is no separating space or \n, so the result won't be very nice. I left
it as-is for now though.
gdb/ChangeLog:
* nat/linux-ptrace.h (linux_ptrace_attach_fail_reason): Return
std::string.
(linux_ptrace_attach_fail_reason_string): Likewise.
* nat/linux-ptrace.c (linux_ptrace_attach_fail_reason):
Likewise.
(linux_ptrace_attach_fail_reason_string): Likewise.
* linux-nat.c (attach_proc_task_lwp_callback): Adjust.
gdb/gdbserver/ChangeLog:
* linux-low.c (attach_proc_task_lwp_callback): Adjust to
linux_ptrace_attach_fail_reason_string now returning an
std::string.
(linux_attach): Likewise.
* thread-db.c (attach_thread): Likewise.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index d26ab7d..a47c496 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1167,10 +1167,11 @@ attach_proc_task_lwp_callback (ptid_t ptid) } else { + std::string reason + = linux_ptrace_attach_fail_reason_string (ptid, err); + warning (_("Cannot attach to lwp %d: %s"), - lwpid, - linux_ptrace_attach_fail_reason_string (ptid, - err)); + lwpid, reason.c_str ()); } } else @@ -1223,18 +1224,10 @@ linux_nat_attach (struct target_ops *ops, const char *args, int from_tty) CATCH (ex, RETURN_MASK_ERROR) { pid_t pid = parse_pid_to_attach (args); - struct buffer buffer; - char *buffer_s; - - buffer_init (&buffer); - linux_ptrace_attach_fail_reason (pid, &buffer); - - buffer_grow_str0 (&buffer, ""); - buffer_s = buffer_finish (&buffer); - make_cleanup (xfree, buffer_s); + std::string reason = linux_ptrace_attach_fail_reason (pid); - if (*buffer_s != '\0') - throw_error (ex.error, "warning: %s\n%s", buffer_s, ex.message); + if (!reason.empty ()) + throw_error (ex.error, "warning: %s\n%s", reason.c_str (), ex.message); else throw_error (ex.error, "%s", ex.message); } |