aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/linux-low.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2012-03-13 15:02:25 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2012-03-13 15:02:25 +0000
commit87b0bb13cbbea83ec1896b3ab915c8ce48ab6d44 (patch)
treefb17c271ea65ada68744e144e81fb7cb09f8d3f4 /gdb/gdbserver/linux-low.c
parent5f572decf9c6fe42f07706514b5056e7fc65cfef (diff)
downloadgdb-87b0bb13cbbea83ec1896b3ab915c8ce48ab6d44.zip
gdb-87b0bb13cbbea83ec1896b3ab915c8ce48ab6d44.tar.gz
gdb-87b0bb13cbbea83ec1896b3ab915c8ce48ab6d44.tar.bz2
gdb/
* common/linux-procfs.c (linux_proc_get_int): New, from linux_proc_get_tgid, change its LWPID type to pid_t, add parameter field. (linux_proc_get_tgid): Only call linux_proc_get_int. (linux_proc_get_tracerpid): New. (linux_proc_pid_has_state): New, from linux_proc_pid_is_zombie. (linux_proc_pid_is_stopped, linux_proc_pid_is_zombie): Only call linux_proc_pid_has_state. * common/linux-procfs.h (linux_proc_get_tracerpid): New declaration. * common/linux-ptrace.c: Include linux-procfs.h and buffer.h. (linux_ptrace_attach_warnings): New. * common/linux-ptrace.h (struct buffer, linux_ptrace_attach_warnings): New declaration. * linux-nat.c: Include exceptions.h, linux-ptrace.h and buffer.h. (linux_nat_attach): New variables ex, buffer, message and message_s. Wrap to_attach by TRY_CATCH and call linux_ptrace_attach_warnings. gdb/gdbserver/ * linux-low.c (linux_attach_lwp_1): New variable buffer. Call linux_ptrace_attach_warnings. gdb/testsuite/ * gdb.base/attach-twice.c: New files. * gdb.base/attach-twice.exp: New files.
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r--gdb/gdbserver/linux-low.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 06ec576..d2d4c1d 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -652,6 +652,8 @@ linux_attach_lwp_1 (unsigned long lwpid, int initial)
if (ptrace (PTRACE_ATTACH, lwpid, 0, 0) != 0)
{
+ struct buffer buffer;
+
if (!initial)
{
/* If we fail to attach to an LWP, just warn. */
@@ -662,8 +664,11 @@ linux_attach_lwp_1 (unsigned long lwpid, int initial)
}
/* If we fail to attach to a process, report an error. */
- error ("Cannot attach to lwp %ld: %s (%d)\n", lwpid,
- strerror (errno), errno);
+ buffer_init (&buffer);
+ linux_ptrace_attach_warnings (lwpid, &buffer);
+ buffer_grow_str0 (&buffer, "");
+ error ("%sCannot attach to lwp %ld: %s (%d)", buffer_finish (&buffer),
+ lwpid, strerror (errno), errno);
}
if (initial)