aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2011-08-14 15:58:40 +0000
committerYao Qi <yao@codesourcery.com>2011-08-14 15:58:40 +0000
commitd93f7b5c9552338037fcb8fc03b3a04e21c478cd (patch)
treed58f54fca8f04dae26a3c4a478249ee3ddc05255 /gdb
parent58dbd54186b324c1481454892e03c5fb8307dbc1 (diff)
downloadgdb-d93f7b5c9552338037fcb8fc03b3a04e21c478cd.zip
gdb-d93f7b5c9552338037fcb8fc03b3a04e21c478cd.tar.gz
gdb-d93f7b5c9552338037fcb8fc03b3a04e21c478cd.tar.bz2
gdb/testsuite/
* gdb.base/maint.exp: set data_section to ".neardata". * gdb.base/savedregs.c (thrower): Trigger SIGILL on NO-MMU machine. * gdb.base/savedregs.exp: Handle SIGILL. * gdb.mi/mi-syn-frame.c (bar): Trigger SIGILL on NO-MMU machine. * gdb.xml/tdesc-regs.exp: Set core-regs for tic6x-*-*.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/ChangeLog8
-rw-r--r--gdb/testsuite/gdb.base/maint.exp5
-rw-r--r--gdb/testsuite/gdb.base/savedregs.c14
-rw-r--r--gdb/testsuite/gdb.base/savedregs.exp1
-rw-r--r--gdb/testsuite/gdb.mi/mi-syn-frame.c13
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-regs.exp3
6 files changed, 42 insertions, 2 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 2870aa2..5902d89 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2011-08-14 Yao Qi <yao@codesourcery.com>
+
+ * gdb.base/maint.exp: set data_section to ".neardata".
+ * gdb.base/savedregs.c (thrower): Trigger SIGILL on NO-MMU machine.
+ * gdb.base/savedregs.exp: Handle SIGILL.
+ * gdb.mi/mi-syn-frame.c (bar): Trigger SIGILL on NO-MMU machine.
+ * gdb.xml/tdesc-regs.exp: Set core-regs for tic6x-*-*.
+
2011-08-12 Doug Evans <dje@google.com>
* gdb.python/py-symbol.exp: Add test for symbol.type.
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 61ad439..2bd25936 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -394,6 +394,11 @@ gdb_test_multiple "maint info sections" "maint info sections" {
set data_section ER_RW
pass "maint info sections"
}
+ -re "Exec file:\r\n.*break($EXEEXT)?., file type.*neardata.*$gdb_prompt $" {
+ # c6x doesn't have .data section. It has .neardata and .fardata section.
+ set data_section ".neardata"
+ pass "maint info sections"
+ }
-re "Exec file:\r\n.*break($EXEEXT)?., file type.*$gdb_prompt $" {
pass "maint info sections"
}
diff --git a/gdb/testsuite/gdb.base/savedregs.c b/gdb/testsuite/gdb.base/savedregs.c
index 9f302a0..4f962ac 100644
--- a/gdb/testsuite/gdb.base/savedregs.c
+++ b/gdb/testsuite/gdb.base/savedregs.c
@@ -45,11 +45,25 @@ catcher (int sig)
static void
thrower (void)
{
+ /* Trigger a SIGSEGV. */
*(char *)0 = 0;
+
+ /* On MMU-less system, previous memory access to address zero doesn't
+ trigger a SIGSEGV. Trigger a SIGILL. Each arch should define its
+ own illegal instruction here. */
+
+#if defined(__arm__)
+ asm(".word 0xf8f00000");
+#elif defined(__TMS320C6X__)
+ asm(".word 0x56454313");
+#else
+#endif
+
}
main ()
{
+ signal (SIGILL, catcher);
signal (SIGSEGV, catcher);
thrower ();
}
diff --git a/gdb/testsuite/gdb.base/savedregs.exp b/gdb/testsuite/gdb.base/savedregs.exp
index eeee0ff..b9204a4 100644
--- a/gdb/testsuite/gdb.base/savedregs.exp
+++ b/gdb/testsuite/gdb.base/savedregs.exp
@@ -143,6 +143,7 @@ process_saved_regs thrower { main } { }
# Continue to the signal catcher, check main's saved-reg info, capture
# catcher's saved-reg info.
gdb_test "handle SIGSEGV pass print nostop"
+gdb_test "handle SIGILL pass print nostop"
gdb_test "advance catcher" "catcher .* at .*"
process_saved_regs catcher { sigtramp thrower } { main }
diff --git a/gdb/testsuite/gdb.mi/mi-syn-frame.c b/gdb/testsuite/gdb.mi/mi-syn-frame.c
index ddfc08e..332f246 100644
--- a/gdb/testsuite/gdb.mi/mi-syn-frame.c
+++ b/gdb/testsuite/gdb.mi/mi-syn-frame.c
@@ -25,9 +25,18 @@ foo (void)
void
bar (void)
{
- char *nuller = 0;
+ *(char *)0 = 0; /* try to cause a segfault */
+
+ /* On MMU-less system, previous memory access to address zero doesn't
+ trigger a SIGSEGV. Trigger a SIGILL. Each arch should define its
+ own illegal instruction here. */
+#if defined(__arm__)
+ asm(".word 0xf8f00000");
+#elif defined(__TMS320C6X__)
+ asm(".word 0x56454313");
+#else
+#endif
- *nuller = 'a'; /* try to cause a segfault */
}
void
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp
index 224c082..6a12dba 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -53,6 +53,9 @@ switch -glob -- [istarget] {
unsupported "register tests"
return 0
}
+ "tic6x-*-*" {
+ set core-regs {tic6x-core.xml}
+ }
"i?86-*-*" {
set architecture "i386"
set regdir "i386/"