Relax the pattern in dwzbuildid.exp

Message ID 1399384573-7178-1-git-send-email-yao@codesourcery.com
State Committed
Headers

Commit Message

Yao Qi May 6, 2014, 1:56 p.m. UTC
  Hi,
I recently see the fail in dwzbuildid.exp below on some targets,

(gdb) print the_int
No symbol "the_int" in current context.
(gdb) FAIL: gdb.dwarf2/dwzbuildid.exp: mismatch: print the_int

Looks the pattern expects to see "No symbol table is loaded", which
is emitted in c-exp.y,

variable:       name_not_typename
....
                              if (msymbol.minsym != NULL)
                                write_exp_msymbol (pstate, msymbol);
                              else if (!have_full_symbols () && !have_partial_symbols ())
                                error (_("No symbol table is loaded.  Use the \"file\" command."));
                              else
                                error (_("No symbol \"%s\" in current context."),
                                       copy_name ($1.stoken));

it is expected to have no full symbols nor partial symbols, but something
brings full symbols or partial symbols in.  I added "maint info symtabs"
and "maint info psymtabs" in dwzbuildid.exp, and it shows symbols are from
ld.so, which has debug information.  Then, I reproduce the fail like this,

$ make check RUNTESTFLAGS="CFLAGS_FOR_TARGET='-Wl,-rpath=${glibc_build}:${glibc_build}/math  -Wl,--dynamic-linker=${glibc_build}/elf/ld.so' dwzbuildid.exp"

${glibc_build} is the glibc build tree.  Debug information is not striped,
so the test fail.  However, if I strip debug information from libc.so, libm.so
and ld.so.  The test passes.

This patch is to relax the pattern to match the both cases that glibc build
has and has not debug information.

gdb/testsuite:

2014-05-06  Yao Qi  <yao@codesourcery.com>

	* gdb.dwarf2/dwzbuildid.exp: Match output "No symbol "the_int" in
	current context" too.
---
 gdb/testsuite/gdb.dwarf2/dwzbuildid.exp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Joel Brobecker May 6, 2014, 2:50 p.m. UTC | #1
> 2014-05-06  Yao Qi  <yao@codesourcery.com>
> 
> 	* gdb.dwarf2/dwzbuildid.exp: Match output "No symbol "the_int" in
> 	current context" too.

LGTM, thanks!
  
Yao Qi May 7, 2014, 3:11 a.m. UTC | #2
On 05/06/2014 10:50 PM, Joel Brobecker wrote:
>> 2014-05-06  Yao Qi  <yao@codesourcery.com>
>>
>> 	* gdb.dwarf2/dwzbuildid.exp: Match output "No symbol "the_int" in
>> 	current context" too.
> 
> LGTM, thanks!
> 

Thanks, patch is pushed in.
  

Patch

diff --git a/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp b/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
index af8e5d3..7bf0d5c 100644
--- a/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
@@ -162,7 +162,7 @@  foreach testname {ok mismatch fallback} {
 	if {[runto_main]} {
 	    if {$testname == "mismatch"} {
 		gdb_test "print the_int" \
-		    "No symbol table is loaded.*"
+		    "(No symbol table is loaded|No symbol \"the_int\" in current context).*"
 	    } else {
 		gdb_test "print the_int" " = 99"
 	    }