diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-09-04 21:30:23 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-09-04 21:30:23 +0000 |
commit | 69f223edd7daa2695764d2f997287add432eada5 (patch) | |
tree | 094f14bc03f1009f497b0a19a4097bf6e9f47137 /gdb/gdbserver | |
parent | 193a53d920ac7248cf6a3d8e36f74e9b9100b93b (diff) | |
download | gdb-69f223edd7daa2695764d2f997287add432eada5.zip gdb-69f223edd7daa2695764d2f997287add432eada5.tar.gz gdb-69f223edd7daa2695764d2f997287add432eada5.tar.bz2 |
* linux-low.c (linux_wait_for_event): Do not pass signals while
single-stepping.
Diffstat (limited to 'gdb/gdbserver')
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/linux-low.c | 8 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 0b5d751..13bb16c 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 7911f2e..aaa09ef 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))] |