Recently I started to see this fail with trunk:
...
(gdb) record instruction-history^M
1 0x00000000004004ab <main+4>: call 0x4004b7 <test>^M
2 0x00000000004004c6 <test+15>: mov $0x1,%eax^M
3 0x00000000004004cb <test+20>: ret ^M
(gdb) FAIL: gdb.btrace/tsx.exp: speculation indication
...
This is due to an intel microcode update (1) that disables Intel TSX by default.
Fix this by updating the pattern.
Tested on x86_64-linux, with both gcc 7.5.0 and clang 12.0.1.
[1] https://www.intel.com/content/www/us/en/support/articles/
000059422/processors.html
gdb/testsuite/ChangeLog:
2021-07-12 Tom de Vries <tdevries@suse.de>
PR testsuite/28057
* gdb.btrace/tsx.exp: Add pattern for system with tsx disabled in
microcode.
"\[0-9\]*\t 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tmov\[^\\\r\\\n\]*" \
"\[0-9\]*\t 0x\[0-9a-f\]+ <test\\+\[0-9\]+>:\tret\[^\\\r\\\n\]*" \
]
+set abort_3 \
+ [multi_line \
+ "$decimal\t $hex <main\\+$decimal>:\t\[^\\\r\\\n\]*" \
+ "$decimal\t $hex <test\\+$decimal>:\tmov\[^\\\r\\\n\]*" \
+ "$decimal\t $hex <test\\+$decimal>:\tret\[^\\\r\\\n\]*"]
set test "speculation indication"
gdb_test_multiple "record instruction-history" $test {
-re "$abort_2.*$gdb_prompt $" {
pass $test
}
+ -re -wrap "$abort_3.*" {
+ pass $gdb_test_name
+ }
-re "$begin_to_end.*$gdb_prompt $" {
pass $test
}