2002-03-30 Daniel Jacobowitz <drow@mvista.com>
authorDaniel Jacobowitz <drow@false.org>
Sat, 30 Mar 2002 23:47:18 +0000 (23:47 +0000)
committerDaniel Jacobowitz <drow@false.org>
Sat, 30 Mar 2002 23:47:18 +0000 (23:47 +0000)
        Fix PR gdb/452
        * gdb.base/dbx.exp: Restore old definition of gdb_file_cmd
        when finished.  Make gdb_file_cmd send "exec-file" when
        appropriate.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/dbx.exp

index b845c0772b49924bb7afd06f40e758ed42b92f4f..5af739d98f0c0b046c2e8408066b8e17c8220d70 100644 (file)
@@ -1,3 +1,10 @@
+2002-03-30  Daniel Jacobowitz  <drow@mvista.com>
+
+       Fix PR gdb/452
+       * gdb.base/dbx.exp: Restore old definition of gdb_file_cmd
+       when finished.  Make gdb_file_cmd send "exec-file" when
+       appropriate.
+
 2002-03-30  Daniel Jacobowitz  <drow@mvista.com>
 
        * gdb.base/attach.exp: Remove extra setup_xfail.
index 9df3bda806ec338c76cc57868777d66412ddec3c..161333c8ea3c0999e4ee40f93d55b2924076d144 100644 (file)
@@ -168,6 +168,11 @@ proc dbx_reinitialize_dir { subdir } {
 # file into gdb for a dbx session. So why not just override gdb_file_cmd with the
 # right sequence of events, allowing gdb_load to do its normal thing? This way
 # remotes and simulators will work, too.
+#
+# [drow 2002-03-30]: We can restore the old gdb_file_cmd afterwards, though.
+set old_gdb_file_cmd_args [info args gdb_file_cmd]
+set old_gdb_file_cmd_body [info body gdb_file_cmd]
+
 proc gdb_file_cmd {arg} {
     global verbose
     global loadpath
@@ -206,6 +211,11 @@ proc gdb_file_cmd {arg} {
             verbose "\t\tLoaded $arg into the $GDB"
             send_gdb "exec-file $arg\n" 
             gdb_expect {
+               -re "A program is being debugged already.*Kill it.*y or n. $" {
+                   send_gdb "y\n"
+                       verbose "\t\tKilling previous program being debugged"
+                   exp_continue
+               }
                 -re ".*$gdb_prompt $" {
                     verbose "\t\tLoaded $arg with new symbol table into $GDB"
                     return 0
@@ -221,23 +231,9 @@ proc gdb_file_cmd {arg} {
             perror "$arg wasn't compiled with \"-g\""
             return -1
         }
-        -re "A program is being debugged already.*Kill it.*y or n. $" {
-            send_gdb "y\n"
-                verbose "\t\tKilling previous program being debugged"
-            exp_continue
-        }
         -re "Load new symbol table from \".*\".*y or n. $" {
             send_gdb "y\n"
-            gdb_expect {
-                -re "Reading symbols from.*done.*$gdb_prompt $" {
-                    verbose "\t\tLoaded $arg with new symbol table into $GDB"
-                    return 0
-                }
-                timeout {
-                    perror "(timeout) Couldn't load $arg, other program already loaded."
-                    return -1
-                }
-            }
+           exp_continue
         }
         -re ".*No such file or directory.*$gdb_prompt $" {
             perror "($arg) No such file or directory\n"
@@ -339,4 +335,6 @@ test_func
 gdb_exit
 
 set GDBFLAGS $saved_gdbflags
+eval proc gdb_file_cmd {$old_gdb_file_cmd_args} {$old_gdb_file_cmd_body}
+
 return 0