mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
GDB: Work around D;PID handling bug in older GDBservers (PR gdb/23377)
This commit adds a GDB workaround for the GDBserver bug exposed by
commit f2ffa92bbc
("gdb: Eliminate the 'stop_pc' global"), so that
newer GDBs can continue working with older GDBservers.
gdb/ChangeLog:
2018-07-11 Pedro Alves <palves@redhat.com>
PR gdb/23377
* remote.c (remote_target::remote_detach_pid): Call
set_current_process.
This commit is contained in:
parent
31445d1036
commit
4c7333b308
@ -1,3 +1,9 @@
|
||||
2018-07-11 Pedro Alves <palves@redhat.com>
|
||||
|
||||
PR gdb/23377
|
||||
* remote.c (remote_target::remote_detach_pid): Call
|
||||
set_current_process.
|
||||
|
||||
2018-07-11 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* h8300-tdep.c (h8300_gdbarch_init): Remove
|
||||
|
@ -5661,6 +5661,14 @@ remote_target::remote_detach_pid (int pid)
|
||||
{
|
||||
struct remote_state *rs = get_remote_state ();
|
||||
|
||||
/* This should not be necessary, but the handling for D;PID in
|
||||
GDBserver versions prior to 8.2 incorrectly assumes that the
|
||||
selected process points to the same process we're detaching,
|
||||
leading to misbehavior (and possibly GDBserver crashing) when it
|
||||
does not. Since it's easy and cheap, work around it by forcing
|
||||
GDBserver to select GDB's current process. */
|
||||
set_general_process ();
|
||||
|
||||
if (remote_multi_process_p (rs))
|
||||
xsnprintf (rs->buf, get_remote_packet_size (), "D;%x", pid);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user