summaryrefslogtreecommitdiff
path: root/gdb/gdbserver
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@debian.org>2007-09-04 21:30:23 +0000
committerDaniel Jacobowitz <dan@debian.org>2007-09-04 21:30:23 +0000
commita02c9d17e10321112d63eb252262d9ab157be971 (patch)
tree16fa42008748746151c7bea27b0f6eaa1d8e81bf /gdb/gdbserver
parentb6e15c8cc83ca9a5c80fffb9bbd74718e937737b (diff)
downloadgdb-a02c9d17e10321112d63eb252262d9ab157be971.tar.gz
* linux-low.c (linux_wait_for_event): Do not pass signals while
single-stepping.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/linux-low.c8
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 0b5d751fef3..13bb16cfe17 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,3 +1,8 @@
+2007-09-04 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * linux-low.c (linux_wait_for_event): Do not pass signals while
+ single-stepping.
+
2007-09-03 Pedro Alves <pedro_alves@portugalmail.pt>
* win32-low.c (create_process): New.
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 7911f2e5558..aaa09ef819e 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -589,12 +589,14 @@ linux_wait_for_event (struct thread_info *child)
/* If GDB is not interested in this signal, don't stop other
threads, and don't report it to GDB. Just resume the
inferior right away. We do this for threading-related
- signals as well as any that GDB specifically requested
- we ignore. But never ignore SIGSTOP if we sent it
- ourselves. */
+ signals as well as any that GDB specifically requested we
+ ignore. But never ignore SIGSTOP if we sent it ourselves,
+ and do not ignore signals when stepping - they may require
+ special handling to skip the signal handler. */
/* FIXME drow/2002-06-09: Get signal numbers from the inferior's
thread library? */
if (WIFSTOPPED (wstat)
+ && !event_child->stepping
&& ((using_threads && (WSTOPSIG (wstat) == __SIGRTMIN
|| WSTOPSIG (wstat) == __SIGRTMIN + 1))
|| (pass_signals[target_signal_from_host (WSTOPSIG (wstat))]