aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/doc/ChangeLog5
-rw-r--r--gdb/doc/gdb.texinfo6
-rw-r--r--gdb/gdbserver/ChangeLog6
-rw-r--r--gdb/gdbserver/server.c10
4 files changed, 20 insertions, 7 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index 9f2dcf9..347b78a 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-19 Pedro Alves <pedro@codesourcery.com>
+
+ * gdb.texinfo (vAttach, vRun): Remove requirement of the stub
+ killing the inferior when it is already debugging a process.
+
2008-02-13 Markus Deuling <deuling@de.ibm.com>
* gdbint.texinfo (Build Script): New section. Mention new build script
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 8754350..9061fa2 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -23706,8 +23706,8 @@ up to the first @samp{;} or @samp{?} (or the end of the packet).
@item vAttach;@var{pid}
@cindex @samp{vAttach} packet
Attach to a new process with the specified process ID. @var{pid} is a
-hexadecimal integer identifying the process. If the stub is currently
-controlling a process, it is killed. The attached process is stopped.
+hexadecimal integer identifying the process. The attached process is
+stopped.
This packet is only available in extended mode (@pxref{extended mode}).
@@ -23821,7 +23821,7 @@ Run the program @var{filename}, passing it each @var{argument} on its
command line. The file and arguments are hex-encoded strings. If
@var{filename} is an empty string, the stub may use a default program
(e.g.@: the last program run). The program is created in the stopped
-state. If the stub is currently controlling a process, it is killed.
+state.
This packet is only available in extended mode (@pxref{extended mode}).
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 6ec1704..855a607 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-19 Pedro Alves <pedro@codesourcery.com>
+
+ * server.c (handle_v_requests): When handling the vRun and vAttach
+ packets, if already debugging a process, don't kill it. Return an
+ error instead.
+
2008-02-17 Daniel Jacobowitz <dan@codesourcery.com>
* server.c (handle_query): Correct length check.
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c
index 79bde64..31f8a6c 100644
--- a/gdb/gdbserver/server.c
+++ b/gdb/gdbserver/server.c
@@ -928,8 +928,9 @@ handle_v_requests (char *own_buf, char *status, int *signal,
{
if (target_running ())
{
- fprintf (stderr, "Killing inferior\n");
- kill_inferior ();
+ fprintf (stderr, "Already debugging a process\n");
+ write_enn (own_buf);
+ return;
}
handle_v_attach (own_buf, status, signal);
return;
@@ -939,8 +940,9 @@ handle_v_requests (char *own_buf, char *status, int *signal,
{
if (target_running ())
{
- fprintf (stderr, "Killing inferior\n");
- kill_inferior ();
+ fprintf (stderr, "Already debugging a process\n");
+ write_enn (own_buf);
+ return;
}
handle_v_run (own_buf, status, signal);
return;