summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog13
-rw-r--r--gdb/testsuite/gdb.base/remote.exp7
-rw-r--r--gdb/testsuite/gdb.gdb/complaints.exp18
-rw-r--r--gdb/testsuite/gdb.gdb/observer.exp11
-rw-r--r--gdb/testsuite/gdb.gdb/selftest.exp14
-rw-r--r--gdb/testsuite/gdb.gdb/xfullpath.exp18
-rw-r--r--gdb/testsuite/lib/gdb.exp79
7 files changed, 96 insertions, 64 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1831362162b..ad2524d0a6b 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2004-08-27 Michael Chastain <mec.gnu@mindspring.com>
+
+ With code from Manoj Iyer <manjo@austin.ibm.com>:
+ * lib/gdb.exp (gdb_file_cmd): Return more information in the
+ return value. Add an arm for "no debugging symbols found".
+ Change a stray "error" to "perror".
+ (gdb_run_cmd): Adapt to new return value.
+ * gdb.base/remote.exp: Adapt to new return value.
+ * gdb.gdb/complaints.exp: Likewise.
+ * gdb.gdb/observer.exp: Likewise.
+ * gdb.gdb/selftest.exp: Likewise.
+ * gdb.gdb/xfullpath.exp: Likewise.
+
2004-08-27 Joel Brobecker <brobecker@gnat.com>
* gdb.threads/bp_in_thread.exp: New testcase.
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index e2967c60b58..49430d77597 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -1,4 +1,4 @@
-# Copyright 1999, 2001 Free Software Foundation, Inc.
+# Copyright 1999, 2001, 2004 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -119,7 +119,10 @@ proc gdb_load_timed {executable downloadsize class writesize} {
set load_begin_time [clock clicks]
set result [gdb_load $executable]
set load_end_time [clock clicks]
- if {$result < 0} then { fail "$test - loading executable"; return }
+ if { [lindex $result 0] != "" } then {
+ fail "$test - loading executable"
+ return
+ }
verbose "$test - time [expr ($load_end_time - $load_begin_time) / 1000] ms"
pass $test
}
diff --git a/gdb/testsuite/gdb.gdb/complaints.exp b/gdb/testsuite/gdb.gdb/complaints.exp
index 3d3426f2474..719065f60d3 100644
--- a/gdb/testsuite/gdb.gdb/complaints.exp
+++ b/gdb/testsuite/gdb.gdb/complaints.exp
@@ -1,5 +1,5 @@
-# Copyright 2002
-# Free Software Foundation, Inc.
+# Copyright 2002, 2004
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,9 +15,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
# This file was written by Andrew Cagney (cagney at redhat dot com),
# derived from xfullpath.exp (written by Joel Brobecker), derived from
# selftest.exp (written by Rob Savoye).
@@ -51,14 +48,15 @@ proc setup_test { executable } {
set oldtimeout $timeout
set timeout 600
verbose "Timeout is now $timeout seconds" 2
- if {[gdb_load $executable] <0} then {
- set timeout $oldtimeout
- verbose "Timeout is now $timeout seconds" 2
- return -1
- }
+
+ set result [gdb_load $executable]
set timeout $oldtimeout
verbose "Timeout is now $timeout seconds" 2
+ if { [lindex $result 0] != "" } then {
+ return -1
+ }
+
# Set a breakpoint at main
gdb_test "break captured_command_loop" \
"Breakpoint.*at.* file.*, line.*" \
diff --git a/gdb/testsuite/gdb.gdb/observer.exp b/gdb/testsuite/gdb.gdb/observer.exp
index 5b466e62bc0..a012387b5f7 100644
--- a/gdb/testsuite/gdb.gdb/observer.exp
+++ b/gdb/testsuite/gdb.gdb/observer.exp
@@ -46,14 +46,15 @@ proc setup_test { executable } {
set oldtimeout $timeout
set timeout 600
verbose "Timeout is now $timeout seconds" 2
- if {[gdb_load $executable] <0} then {
- set timeout $oldtimeout
- verbose "Timeout is now $timeout seconds" 2
- return -1
- }
+
+ set result [gdb_load $executable]
set timeout $oldtimeout
verbose "Timeout is now $timeout seconds" 2
+ if { [lindex $result 0] != "" } then {
+ return -1
+ }
+
# Set a breakpoint at main
gdb_test "break captured_main" \
"Breakpoint.*at.* file.*, line.*" \
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 54105d211cb..02ad80635ee 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -15,9 +15,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
# This file was written by Rob Savoye. (rob@cygnus.com)
if $tracelevel then {
@@ -243,14 +240,15 @@ proc test_with_self { executable } {
set oldtimeout $timeout
set timeout 600
verbose "Timeout is now $timeout seconds" 2
- if {[gdb_load $executable] <0} then {
- set timeout $oldtimeout
- verbose "Timeout is now $timeout seconds" 2
- return -1
- }
+
+ set result [gdb_load $executable]
set timeout $oldtimeout
verbose "Timeout is now $timeout seconds" 2
+ if { [lindex $result 0] != "" } then {
+ return -1
+ }
+
# disassemble yourself
gdb_test "x/10i main" \
"x/10i.*main.*main.$decimal.*main.$decimal.*" \
diff --git a/gdb/testsuite/gdb.gdb/xfullpath.exp b/gdb/testsuite/gdb.gdb/xfullpath.exp
index 60449a343c5..bc3dc45139e 100644
--- a/gdb/testsuite/gdb.gdb/xfullpath.exp
+++ b/gdb/testsuite/gdb.gdb/xfullpath.exp
@@ -1,5 +1,5 @@
-# Copyright 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright 2002, 2003, 2004
+# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,9 +15,6 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
# This file was written by Joel Brobecker. (brobecker@gnat.com), derived
# from selftest.exp, written by Rob Savoye.
@@ -50,14 +47,15 @@ proc setup_test { executable } {
set oldtimeout $timeout
set timeout 600
verbose "Timeout is now $timeout seconds" 2
- if {[gdb_load $executable] <0} then {
- set timeout $oldtimeout
- verbose "Timeout is now $timeout seconds" 2
- return -1
- }
+
+ set result [gdb_load $executable]
set timeout $oldtimeout
verbose "Timeout is now $timeout seconds" 2
+ if { [lindex $result 0] != "" } then {
+ return -1
+ }
+
# Set a breakpoint at main
gdb_test "break captured_main" \
"Breakpoint.*at.* file.*, line.*" \
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 6495059ba37..433015f0fbf 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -180,7 +180,8 @@ proc gdb_run_cmd {args} {
if [target_info exists gdb,do_reload_on_run] {
# Specifying no file, defaults to the executable
# currently being debugged.
- if { [gdb_load ""] < 0 } {
+ set status [gdb_load ""]
+ if { [lindex $status 0] != "" } {
return;
}
send_gdb "continue\n";
@@ -225,7 +226,8 @@ proc gdb_run_cmd {args} {
send_gdb "y\n"
}
-re "The program is not being run.*$gdb_prompt $" {
- if { [gdb_load ""] < 0 } {
+ set status [gdb_load ""]
+ if { [lindex $status 0] != ""] } {
return;
}
send_gdb "jump *$start\n";
@@ -247,7 +249,8 @@ proc gdb_run_cmd {args} {
}
if [target_info exists gdb,do_reload_on_run] {
- if { [gdb_load ""] < 0 } {
+ set status [gdb_load ""]
+ if { [lindex $status 0] != "" } {
return;
}
}
@@ -953,35 +956,49 @@ proc default_gdb_exit {} {
unset gdb_spawn_id
}
+# Load a file into the debugger.
+# The return value is a list with the following information:
#
-# load a file into the debugger.
-# return a -1 if anything goes wrong.
+# { message word ... }
+#
+# MESSAGE has the following values:
+#
+# "" file was loaded successfully
+# "..." file was not loaded successfully.
+# A perror has been generated with MESSAGE.
+#
+# If the MESSAGE is "", then there is an optional set of words.
+# The words may be:
#
+# nodebug this file does not contain debug information
+#
+# TODO: gdb.base/sepdebug.exp and gdb.stabs/weird.exp might
+# be able to use this if they can get more information
+# in the return value.
+
proc gdb_file_cmd { arg } {
+ global gdb_prompt
global verbose
- global loadpath
- global loadfile
global GDB
- global gdb_prompt
- upvar timeout timeout
if [is_remote host] {
- set arg [remote_download host $arg];
+ set arg [remote_download host $arg]
if { $arg == "" } {
- error "download failed"
- return -1;
+ set message "download failed"
+ perror $message
+ return { $message }
}
}
send_gdb "file $arg\n"
gdb_expect 120 {
+ -re "Reading symbols from.*no debugging symbols found.*done.*$gdb_prompt $" {
+ verbose "\t\tLoaded $arg into the $GDB with no debugging symbols"
+ return { "" nodebug }
+ }
-re "Reading symbols from.*done.*$gdb_prompt $" {
verbose "\t\tLoaded $arg into the $GDB"
- return 0
- }
- -re "has no symbol-table.*$gdb_prompt $" {
- perror "$arg wasn't compiled with \"-g\""
- return -1
+ return { "" }
}
-re "A program is being debugged already.*Kill it.*y or n. $" {
send_gdb "y\n"
@@ -993,32 +1010,37 @@ proc gdb_file_cmd { arg } {
gdb_expect 120 {
-re "Reading symbols from.*done.*$gdb_prompt $" {
verbose "\t\tLoaded $arg with new symbol table into $GDB"
- return 0
+ return { "" }
}
timeout {
- perror "(timeout) Couldn't load $arg, other program already loaded."
- return -1
+ set message "(timeout) Couldn't load $arg, other program already loaded."
+ perror $message
+ return { $message }
}
}
}
-re "No such file or directory.*$gdb_prompt $" {
- perror "($arg) No such file or directory\n"
- return -1
+ set message "($arg) No such file or directory"
+ perror $message
+ return { $message }
}
-re "$gdb_prompt $" {
- perror "couldn't load $arg into $GDB."
- return -1
+ set message "couldn't load $arg into $GDB."
+ perror $message
+ return { $message }
}
timeout {
- perror "couldn't load $arg into $GDB (timed out)."
- return -1
+ set message "couldn't load $arg into $GDB (timed out)."
+ perror $message
+ return { $message }
}
eof {
# This is an attempt to detect a core dump, but seems not to
# work. Perhaps we need to match .* followed by eof, in which
# gdb_expect does not seem to have a way to do that.
- perror "couldn't load $arg into $GDB (end of file)."
- return -1
+ set message "couldn't load $arg into $GDB (end of file)."
+ perror $message
+ return { $message }
}
}
}
@@ -1633,7 +1655,6 @@ proc gdb_exit { } {
#
# gdb_load -- load a file into the debugger.
-# return a -1 if anything goes wrong.
#
proc gdb_load { arg } {
return [gdb_file_cmd $arg]