diff options
author | Pedro Alves <palves@redhat.com> | 2015-01-26 17:52:28 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2015-02-10 19:30:55 +0000 |
commit | 01b088bc51fe37e07905d36547f4ea43904837c0 (patch) | |
tree | 79974766f86004f46b1479289a438a8241ae7363 /gdb/testsuite/gdb.threads/signal-sigtrap.c | |
parent | b052c4fbf5e64a2e96452642adf433f60b185245 (diff) | |
download | fsf-binutils-gdb-01b088bc51fe37e07905d36547f4ea43904837c0.zip fsf-binutils-gdb-01b088bc51fe37e07905d36547f4ea43904837c0.tar.gz fsf-binutils-gdb-01b088bc51fe37e07905d36547f4ea43904837c0.tar.bz2 |
Add "signal SIGTRAP" test
Some local changes I was working on related to SIGTRAP handling
resulted in "signal SIGTRAP" no longer passing the SIGTRAP to the
inferior.
Surprisingly, only annota1.exp catches this. This commit adds a test
that doesn't rely on annotations, so that at the point annotations are
finaly dropped, we still have this use case covered ...
This is a multi-threaded test to also exercise the case of first
needing to do a step-over before delivering the signal.
Tested on x86_64 Fedora 20, native, remote/extended-remote gdbserver.
gdb/testsuite/
2015-02-10 Pedro Alves <palves@redhat.com>
* gdb.threads/signal-sigtrap.c: New file.
* gdb.threads/signal-sigtrap.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.threads/signal-sigtrap.c')
-rw-r--r-- | gdb/testsuite/gdb.threads/signal-sigtrap.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.threads/signal-sigtrap.c b/gdb/testsuite/gdb.threads/signal-sigtrap.c new file mode 100644 index 0000000..4513d38 --- /dev/null +++ b/gdb/testsuite/gdb.threads/signal-sigtrap.c @@ -0,0 +1,46 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2014-2015 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <unistd.h> +#include <stdlib.h> +#include <pthread.h> +#include <signal.h> + +void +sigtrap_handler (int sig) +{ +} + +void * +thread_function (void *arg) +{ + return NULL; +} + +int +main (void) +{ + pthread_t child_thread; + + signal (SIGTRAP, sigtrap_handler); + + pthread_create (&child_thread, NULL, thread_function, NULL); + + pthread_join (child_thread, NULL); + + return 0; +} |