gdb/testsuite/
authorYao Qi <yao@codesourcery.com>
Sun, 14 Aug 2011 15:58:40 +0000 (15:58 +0000)
committerYao Qi <yao@codesourcery.com>
Sun, 14 Aug 2011 15:58:40 +0000 (15:58 +0000)
* 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-*-*.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/maint.exp
gdb/testsuite/gdb.base/savedregs.c
gdb/testsuite/gdb.base/savedregs.exp
gdb/testsuite/gdb.mi/mi-syn-frame.c
gdb/testsuite/gdb.xml/tdesc-regs.exp

index 2870aa2..5902d89 100644 (file)
@@ -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.
index 61ad439..2bd2593 100644 (file)
@@ -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"
     }
index 9f302a0..4f962ac 100644 (file)
@@ -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 ();
 }
index eeee0ff..b9204a4 100644 (file)
@@ -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 }
 
index ddfc08e..332f246 100644 (file)
@@ -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
index 224c082..6a12dba 100644 (file)
@@ -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/"