+2019-10-13  Tom de Vries  <tdevries@suse.de>
+
+       PR record/25038
+       * gdb.reverse/sigall-precsave.exp: Add PR record/25038 KFAIL.
+       * gdb.reverse/sigall-reverse.exp: Same.
+       * gdb.reverse/solib-precsave.exp: Same.
+       * gdb.reverse/solib-reverse.exp: Same.
+       * gdb.reverse/step-precsave.exp: Same.
+       * gdb.reverse/until-precsave.exp: Same.
+       * gdb.reverse/until-reverse.exp: Same.
+       * lib/gdb.exp (gdb_continue_to_breakpoint): Same.
+
 2019-10-10  Andreas Arnez  <arnez@linux.ibm.com>
 
        * gdb.base/infcall-nested-structs.c (cmp_struct_02_01)
 
     }
 }
 
-gdb_test_multiple "continue" "continue" {
+set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
+set test "run to end of main"
+gdb_test_multiple "continue" $test {
     -re "Breakpoint .* end of main .*$gdb_prompt $" {
-       pass "run to end of main"
+       pass $test
     }
     -re "Breakpoint .* handle_.*$gdb_prompt $" {
        send_gdb "continue\n"
        exp_continue
     }
+    -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+       kfail "gdb/25038" $test
+       return -1
+    }
 }
 
 delete_breakpoints
 
     global sig_supported
     global gdb_prompt
     global thissig
+    global record_instruction_kfail
 
     set this_sig_supported $sig_supported
     gdb_test "handle SIG$thissig stop print" \
            setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"
        }
        set testmsg "get signal $thissig"
+       set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
        gdb_test_multiple "continue" $testmsg {
            -re "Program received signal SIG$thissig.*handle_$thissig.*$gdb_prompt $" {
                fail "$testmsg (wrong location)"
                xfail $testmsg
                set need_another_continue 0
            }
+           -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+               kfail "gdb/25038" "$testmsg"
+               set record_instruction_kfail 1
+               return
+           }
        }
     }
 
 
 # test signal handling
 with_test_prefix "sig-test-1" {
+    set record_instruction_kfail 0
     foreach sig [lrange $signals 1 end] {
        test_one_sig $sig
+       if { $record_instruction_kfail } {
+           return -1
+       }
     }
 }
 
 
     "Breakpoint $decimal at .*$srcfile, line $end_of_main\." \
     "breakpoint at end of main"
 
-gdb_test "continue" "Breakpoint .* end of main .*" "run to end of main"
+set test "run to end of main"
+set pass_pattern "Breakpoint .* end of main .*"
+set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
+gdb_test_multiple "continue" $test {
+    -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+       pass $test
+    }
+    -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+       kfail "gdb/25038" $test
+       return -1
+    }
+}
 
 gdb_test "record save $precsave" \
     "Saved core file $precsave with execution log\."  \
 
 
 set end_part_one [gdb_get_line_number " end part one" "$srcfile"]
 set end_part_two [gdb_get_line_number " end part two" "$srcfile"]
-gdb_test "until $end_part_one" " end part one.*" "run until end part one"
+set test "run until end part one"
+set pass_pattern " end part one.*"
+set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
+gdb_test_multiple "until $end_part_one" $test {
+    -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+       pass $test
+    }
+    -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+       kfail "gdb/25038" $test
+       return -1
+    }
+}
 
 gdb_test "reverse-step" " shr1 three .*" "reverse-step third shr1"
 gdb_test "reverse-step" " shr1 two .*"   "reverse-step second shr1"
 
     set test "run to end of main"
     set pass_pattern "Breakpoint .* end of main .*"
     set kfail_pattern "Process record does not support instruction 0xc5 at.*"
+    set kfail2_pattern "Process record does not support instruction 0xfae64 at.*"
     gdb_test_multiple "continue" $test {
        -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
            pass $test
        -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
            kfail "record/23188" $test
        }
+       -re "\[\r\n\]*(?:$kfail2_pattern)\[\r\n\]+$gdb_prompt $" {
+           kfail "record/25038" $test
+       }
     }
 }
 
 
 
 # This can take awhile.
 with_timeout_factor 20 {
-    gdb_test "continue" "Breakpoint .* set breakpoint 10a here .*" "run to end of main"
+    set test "run to end of main"
+    set pass_pattern "Breakpoint .* set breakpoint 10a here .*"
+    set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
+    gdb_test_multiple "continue" $test {
+       -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+           pass $test
+       }
+       -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+           kfail "gdb/25038" $test
+           return -1
+       }
+    }
 }
 
 # So can this, against gdbserver, for example.
 
 
 # Advance up to factorial, outer invocation
 #
-gdb_test "advance factorial" \
-    "factorial .value=6..*$srcfile:$bp_location7.*" \
-    "advance to factorial"
+set test "advance to factorial"
+set pass_pattern "factorial .value=6..*$srcfile:$bp_location7.*"
+set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
+gdb_test_multiple "advance factorial" $test {
+    -re "\[\r\n\]*(?:$pass_pattern)\[\r\n\]+$gdb_prompt $" {
+       pass "$test"
+    }
+    -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+       kfail "gdb/25038" $test
+       return -1
+    }
+}
 
 # At this point, 'until' should continue the inferior up to when all the
 # inner invocations of factorial() are completed and we are back at this
 
     global gdb_prompt
     set full_name "continue to breakpoint: $name"
 
+    set kfail_pattern "Process record does not support instruction 0xfae64 at.*"
     gdb_test_multiple "continue" $full_name {
        -re "(?:Breakpoint|Temporary breakpoint) .* (at|in) $location_pattern\r\n$gdb_prompt $" {
            pass $full_name
        }
+       -re "\[\r\n\]*(?:$kfail_pattern)\[\r\n\]+$gdb_prompt $" {
+           kfail "gdb/25038" $full_name
+       }
     }
 }