diff --git a/gdb/testsuite/gdb.base/break-probes.exp b/gdb/testsuite/gdb.base/break-probes.exp index ac10ac5a3b1..b633ae6f4e9 100644 --- a/gdb/testsuite/gdb.base/break-probes.exp +++ b/gdb/testsuite/gdb.base/break-probes.exp @@ -23,13 +23,6 @@ set libname $testfile-solib set srcfile_lib $srcdir/$subdir/$libname.c set binfile_lib [standard_output_file $libname.so] -if { [istarget "*bsd*"] } { - set normal_bp "r_debug_state" -} else { - set normal_bp "_dl_debug_state" -} -set probes_bp "dl_main" - if { [gdb_compile_shlib $srcfile_lib $binfile_lib {}] != "" } { untested "failed to compile shared library" return -1 @@ -47,14 +40,27 @@ gdb_test_no_output "set stop-on-solib-events 1" gdb_run_cmd gdb_test "" ".*Stopped due to shared library event.*" -# XFAIL if we are not using probes -set test "ensure using probes" +# Check if we're using probes. set using_probes 0 -gdb_test_multiple "bt" $test { - -re "#0 +\[^\r\n\]*\\m(__GI_)?$normal_bp\\M.*$gdb_prompt $" { + +# Get PC. +set pc "" +gdb_test_multiple "p /x \$pc" "" { + -re -wrap " = ($hex)" { + set pc $expect_out(1,string) + } + -re -wrap "" { } - -re "#0 +\[^\r\n\]*\\m(__GI_)?$probes_bp\\M.*$gdb_prompt $" { - pass $test +} +if { $pc == "" } { + unsupported "Couldn't get $pc" + return -1 +} +regsub "0x0*" $pc "" pc + +# Verify that pc is at info_start probe address. +gdb_test_multiple "info probes stap rtld" "" { + -re -wrap "init_start +0x0*$pc .*" { set using_probes 1 } -re -wrap "" {