aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.arch/aix-sighandle.c35
-rw-r--r--gdb/testsuite/gdb.arch/aix-sighandle.exp43
3 files changed, 83 insertions, 0 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 575364f..241bf80 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-11-01 Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>
+
+ * gdb.arch/aix-sighandle.c: New file.
+ * gdb.arch/aix-sighandle.exp: New file.
+
2018-10-31 Andrew Burgess <andrew.burgess@embecosm.com>
* gdb.arch/riscv-reg-aliases.exp: Rewrite to take account of float
diff --git a/gdb/testsuite/gdb.arch/aix-sighandle.c b/gdb/testsuite/gdb.arch/aix-sighandle.c
new file mode 100644
index 0000000..a889e7e
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aix-sighandle.c
@@ -0,0 +1,35 @@
+/* Copyright 2018 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 <stdio.h>
+#include <signal.h>
+#include <string.h>
+
+void sig_handle_aix (int signo)
+{
+ printf ("signal is: %d\n", signo);
+}
+
+void foo()
+{
+ char *ptr;
+ signal (SIGSEGV, sig_handle_aix);
+ strcpy (ptr, "signal");
+}
+
+int main()
+{
+ foo ();
+}
diff --git a/gdb/testsuite/gdb.arch/aix-sighandle.exp b/gdb/testsuite/gdb.arch/aix-sighandle.exp
new file mode 100644
index 0000000..a401ff7
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aix-sighandle.exp
@@ -0,0 +1,43 @@
+# Copyright 2018 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/>.
+
+if {![istarget "powerpc*-*-aix*"]} {
+ return
+}
+
+if { [prepare_for_testing "failed to prepare" aix-sighandle aix-sighandle.c] } {
+ return -1
+}
+
+set srcfile aix-sighandle.c
+set binfile aix-sighandle
+
+gdb_test "break sig_handle_aix" \
+ "Breakpoint.1.at.*:.file.*$srcfile,.line.22." \
+ "breakpoint sig_handle_aix"
+gdb_test "run" \
+ "Starting.program:.*$binfile.*\r\nProgram.received.signal.SIGSEGV,.*\r\n.*.in.foo.*.at.*$srcfile:29.*" \
+ "run to breakpoint sig_handle_aix"
+
+gdb_test "continue" \
+ "Continuing.*Breakpoint.1,.sig_handle_aix..signo=11..at.*$srcfile:22.*" \
+ "continue to breakpoint sig_handle_aix"
+
+gdb_test_sequence "backtrace" "backtrace for sighandle" {
+ "\[\r\n\]+#0 .* sig_handle_aix \\(signo=11\\) at "
+ "\[\r\n\]+#1 .* .signal.handler.called."
+ "\[\r\n\]+#2 .* foo \\(\\) at "
+ "\[\r\n\]+#3 .* main \\(\\) at "
+}