Match library name prefixed with sysroot

We enable systemtap probe in glibc recently, and see the following gdb fail,

(gdb) set solib-absolute-prefix /.
...
Stopped due to shared library event:^M
  Inferior loaded /./foo/bar/gdb.base/break-probes-solib.so
...
(gdb) FAIL: gdb.base/break-probes.exp: run til our library loads (the program exited)

$binfile_lib is /foo/bar/gdb.base/break-probes-solib.so, but the
sysroot is prefixed in solib.c:solib_find, as comments described:

   Global variable GDB_SYSROOT is used as a prefix directory
   to search for shared libraries if they have an absolute path.

so the output becomes "/./foo/bar/gdb.base/break-probes-solib.so", which
is still correct.  However, the test repeatedly continue the program
and tries to match $binfile_lib, finally, the program exits and the
test fails.

This patch is to adjust the pattern to match $sysroot$binfile_lib
instead of $binfile_lib.

gdb/testsuite:

2014-11-28  Yao Qi  <yao@codesourcery.com>

	* gdb.base/break-probes.exp: Match library name prefixed with
	sysroot.
This commit is contained in:
Yao Qi 2014-11-28 11:21:48 +08:00
parent e87e47787e
commit 10e79639cc
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2014-11-28 Yao Qi <yao@codesourcery.com>
* gdb.base/break-probes.exp: Match library name prefixed with
sysroot.
2014-11-27 Simon Marchi <simon.marchi@ericsson.com>
* gdb.python/py-linetable.exp: Escape properly sorted(fset)

View File

@ -58,13 +58,21 @@ gdb_test_multiple "bt" $test {
}
if { $using_probes } {
set sysroot ""
set test "show sysroot"
gdb_test_multiple $test $test {
-re "The current system root is \"(.*)\"\..*${gdb_prompt} $" {
set sysroot $expect_out(1,string)
}
}
# Run til it loads our library
set test "run til our library loads"
set not_loaded_library 1
while { $not_loaded_library } {
set not_loaded_library 0
gdb_test_multiple "c" $test {
-re "Inferior loaded $binfile_lib\\M.*$gdb_prompt $" {
-re "Inferior loaded $sysroot$binfile_lib\\M.*$gdb_prompt $" {
pass $test
}
-re "Stopped due to shared library event\\M.*$gdb_prompt $" {