summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2012-12-20 05:05:48 +0000
committerDoug Evans <dje@google.com>2012-12-20 05:05:48 +0000
commitb123deccd98c75c9e005c1f11d4efd2bc9842661 (patch)
treebc819e1bd3623862c38489999f3335f2dd05988d
parentd1ee39674ed0d599d4feca27fa5280ecbe2b62c4 (diff)
downloadgdb-b123deccd98c75c9e005c1f11d4efd2bc9842661.tar.gz
* gdb.base/maint.exp: Handle testing with .gdb_index.
-rw-r--r--gdb/testsuite/ChangeLog4
-rw-r--r--gdb/testsuite/gdb.base/maint.exp70
2 files changed, 45 insertions, 29 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8843e542ea2..5e9ce9abb0c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2012-12-19 Doug Evans <dje@google.com>
+
+ * gdb.base/maint.exp: Handle testing with .gdb_index.
+
2012-12-19 Joel Brobecker <brobecker@adacore.com>
* gdb.arch/mips-octeon-bbit.exp: Fix copyright header from
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 2dc25f44b98..984f54e9f9a 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -92,6 +92,16 @@ if ![runto_main] then {
perror "tests suppressed"
}
+# If we're using .gdb_index there will be no psymtabs.
+set have_gdb_index 0
+gdb_test_multiple "maint info sections .gdb_index" "check for .gdb_index" {
+ -re ": .gdb_index.*$gdb_prompt $" {
+ set have_gdb_index 1
+ }
+ -re ".*$gdb_prompt $" {
+ ;# Nothing to do, present to avoid a FAIL.
+ }
+}
#
# this command does not produce any output
@@ -150,7 +160,7 @@ if [istarget "*-*-cygwin*"] {
send_gdb "maint print statistics\n"
gdb_expect {
- -re "Statistics for\[^\n\r\]*break\[^\n\r\]*:\r\n Number of \"minimal\" symbols read: $decimal\r\n Number of \"partial\" symbols read: $decimal\r\n Number of \"full\" symbols read: $decimal\r\n Number of \"types\" defined: $decimal\r\n Number of psym tables \\(not yet expanded\\): $decimal\r\n Number of symbol tables: $decimal\r\n Number of symbol tables with line tables: $decimal\r\n Number of symbol tables with blockvectors: $decimal\r\n Total memory used for objfile obstack: $decimal\r\n Total memory used for BFD obstack: $decimal\r\n Total memory used for psymbol cache: $decimal\r\n Total memory used for macro cache: $decimal\r\n Total memory used for file name cache: $decimal\r\n" {
+ -re "Statistics for\[^\n\r\]*break\[^\n\r\]*:\r\n Number of \"minimal\" symbols read: $decimal\r\n( Number of \"partial\" symbols read: $decimal\r\n)? Number of \"full\" symbols read: $decimal\r\n Number of \"types\" defined: $decimal\r\n( Number of psym tables \\(not yet expanded\\): $decimal\r\n)?( Number of unread CUs: $decimal\r\n)? Number of symbol tables: $decimal\r\n Number of symbol tables with line tables: $decimal\r\n Number of symbol tables with blockvectors: $decimal\r\n Total memory used for objfile obstack: $decimal\r\n Total memory used for BFD obstack: $decimal\r\n Total memory used for psymbol cache: $decimal\r\n Total memory used for macro cache: $decimal\r\n Total memory used for file name cache: $decimal\r\n" {
gdb_expect {
-re "$gdb_prompt $" {
pass "maint print statistics"
@@ -198,45 +208,47 @@ proc maint_pass_if {val name} {
}
maint_pass_if $header "maint print objfiles: header"
-maint_pass_if $psymtabs "maint print objfiles: psymtabs"
+if { ! $have_gdb_index } {
+ maint_pass_if $psymtabs "maint print objfiles: psymtabs"
+}
maint_pass_if $symtabs "maint print objfiles: symtabs"
gdb_test "maint print psymbols" \
"print-psymbols takes an output file name and optional symbol file name" \
"maint print psymbols w/o args"
-
-
-send_gdb "maint print psymbols psymbols_output ${srcdir}/${subdir}/${srcfile}\n"
-gdb_expect {
- -re "^maint print psymbols psymbols_output \[^\n\]*\r\n$gdb_prompt $" {
- send_gdb "shell ls psymbols_output\n"
- gdb_expect {
- -re "psymbols_output\r\n$gdb_prompt $" {
- # We want this grep to be as specific as possible,
- # so it's less likely to match symbol file names in
- # psymbols_output. Yes, this actually happened;
- # poor expect got tons of output, and timed out
- # trying to match it. --- Jim Blandy <jimb@cygnus.com>
- send_gdb "shell grep 'main.*function' psymbols_output\n"
- gdb_expect {
- -re ".main., function, $hex.*$gdb_prompt $" {
- pass "maint print psymbols 1"
- }
- -re ".*main. .., function, $hex.*$gdb_prompt $" {
- pass "maint print psymbols 2"
+if { ! $have_gdb_index } {
+ send_gdb "maint print psymbols psymbols_output ${srcdir}/${subdir}/${srcfile}\n"
+ gdb_expect {
+ -re "^maint print psymbols psymbols_output \[^\n\]*\r\n$gdb_prompt $" {
+ send_gdb "shell ls psymbols_output\n"
+ gdb_expect {
+ -re "psymbols_output\r\n$gdb_prompt $" {
+ # We want this grep to be as specific as possible,
+ # so it's less likely to match symbol file names in
+ # psymbols_output. Yes, this actually happened;
+ # poor expect got tons of output, and timed out
+ # trying to match it. --- Jim Blandy <jimb@cygnus.com>
+ send_gdb "shell grep 'main.*function' psymbols_output\n"
+ gdb_expect {
+ -re ".main., function, $hex.*$gdb_prompt $" {
+ pass "maint print psymbols 1"
+ }
+ -re ".*main. .., function, $hex.*$gdb_prompt $" {
+ pass "maint print psymbols 2"
+ }
+ -re ".*$gdb_prompt $" { fail "maint print psymbols" }
+ timeout { fail "(timeout) maint print psymbols" }
}
- -re ".*$gdb_prompt $" { fail "maint print psymbols" }
- timeout { fail "(timeout) maint print psymbols" }
+ gdb_test "shell rm -f psymbols_output" ".*"
}
- gdb_test "shell rm -f psymbols_output" ".*"
+ -re ".*$gdb_prompt $" { fail "maint print psymbols" }
+ timeout { fail "(timeout) maint print psymbols" }
}
- -re ".*$gdb_prompt $" { fail "maint print psymbols" }
- timeout { fail "(timeout) maint print psymbols" }
}
+ -re ".*$gdb_prompt $" { fail "maint print psymbols" }
+ timeout { fail "(timeout) maint print psymbols" }
}
- -re ".*$gdb_prompt $" { fail "maint print psymbols" }
- timeout { fail "(timeout) maint print psymbols" }
}
gdb_test "maint print msymbols" \