Fix regression on s390x with entry-values.exp.
authorAndreas Arnez <arnez@linux.vnet.ibm.com>
Wed, 22 Jan 2014 15:37:41 +0000 (15:37 +0000)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Wed, 22 Jan 2014 16:02:13 +0000 (17:02 +0100)
The trace-specific test case 'entry-values' concludes fairly late in
the process that this platform doesn't support trace.  Before that,
there are some platform specifics that don't work on s390x.  The fix
addresses two aspects:

(1) Removal of an excess space character in the regex for the
    disassembly.  This is needed when there is a function alignment
    gap, because then the hex address is immediately followed by a
    colon, like in the first 'nopr' line below:

    (gdb) disassemble foo+50,+10
    Dump of assembler code from 0x32 to 0x3c:
       0x0000000000000032 <foo+50>: br      %r4
       0x0000000000000034:  nopr    %r7
       0x0000000000000036:  nopr    %r7
       0x0000000000000038 <bar+0>:  stmg    %r11,%r15,88(%r15)
    End of assembler dump.

(2) Handling for the s390-specific call instruction.

gdb/testsuite/ChangeLog:
* gdb.trace/entry-values.exp: Remove excess space character from
regex patterns.  Handle s390 call instruction.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/entry-values.exp

index 5e02b7ac820e4e7b0c51d2315884f91269c1c859..dbbd0ec2a7670a6e4cdb78f3fc97435ed39c7d9b 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-22  Andreas Arnez  <arnez@vnet.linux.ibm.com>
+
+       * gdb.trace/entry-values.exp: Remove excess space character from
+       regex patterns.  Handle s390 call instruction.
+
 2014-01-22  Andreas Arnez  <arnez@vnet.linux.ibm.com>
 
        * gdb.dwarf2/dw2-dir-file-name.c (FUNC): Insert alignment and
index 0fb35a06406f3d235184f82f042fb18ed0885371..f10ffa6b6e032bd3155a9a9264552417f37a54b8 100644 (file)
@@ -57,7 +57,7 @@ gdb_test_multiple $test $test {
 
 set test "disassemble foo+$foo_length,+10"
 gdb_test_multiple $test $test {
-    -re ".*($hex) <foo\\+$foo_length>:\[^\r\n\]+\r\n\[ \]+($hex) .*\.\r\n$gdb_prompt $" {
+    -re ".*($hex) <foo\\+$foo_length>:\[^\r\n\]+\r\n\[ \]+($hex).*\.\r\n$gdb_prompt $" {
        set start $expect_out(1,string)
        set end $expect_out(2,string)
 
@@ -77,6 +77,8 @@ set bar_call_foo ""
 
 if { [istarget "arm*-*-*"] || [istarget "aarch64*-*-*"] } {
     set call_insn "bl"
+} elseif { [istarget "s390*-*-*"] } {
+    set call_insn "brasl"
 } else {
     set call_insn "call"
 }
@@ -109,7 +111,7 @@ if { [string equal $bar_call_foo ""] || [string equal $bar_length ""] } {
 
 set test "disassemble bar+$bar_length,+10"
 gdb_test_multiple $test $test {
-    -re ".*($hex) <bar\\+$bar_length>:\[^\r\n\]+\r\n\[ \]+($hex) .*\.\r\n$gdb_prompt $" {
+    -re ".*($hex) <bar\\+$bar_length>:\[^\r\n\]+\r\n\[ \]+($hex).*\.\r\n$gdb_prompt $" {
        set start $expect_out(1,string)
        set end $expect_out(2,string)