* inferior.h (start_remote): Update prototype.
authorDaniel Jacobowitz <drow@false.org>
Wed, 18 Oct 2006 16:56:13 +0000 (16:56 +0000)
committerDaniel Jacobowitz <drow@false.org>
Wed, 18 Oct 2006 16:56:13 +0000 (16:56 +0000)
* infrun.c (start_remote): Take FROM_TTY.  Call
post_create_inferior.
* monitor.c (monitor_open): Update call to start_remote.
* remote-sds.c (sds_start_remote, sds_open): Likewise.
* remote.c (remote_start_remote): Likewise.
(remote_start_remote_dummy): Removed.
(remote_open): Update call to remote_start_remote.  Do not call
post_create_inferior here.

gdb/ChangeLog
gdb/inferior.h
gdb/infrun.c
gdb/monitor.c
gdb/remote-sds.c
gdb/remote.c

index 4fe939d40c3d804cd6ccd39d7c8fbc6c64851834..da9c8cd20f77b48a345fdc4a46748a569dfbb3f3 100644 (file)
@@ -1,3 +1,15 @@
+2006-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * inferior.h (start_remote): Update prototype.
+       * infrun.c (start_remote): Take FROM_TTY.  Call
+       post_create_inferior.
+       * monitor.c (monitor_open): Update call to start_remote.
+       * remote-sds.c (sds_start_remote, sds_open): Likewise.
+       * remote.c (remote_start_remote): Likewise.
+       (remote_start_remote_dummy): Removed.
+       (remote_open): Update call to remote_start_remote.  Do not call
+       post_create_inferior here.
+
 2006-10-18  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * solib-svr4.c (debug_loader_offset_p, debug_loader_offset)
index b3a5f55a5e5dcf5ce00ace0ebce318dc716bb3d3..6160656add09ab7f4650ac3ce120f117c94974c2 100644 (file)
@@ -269,7 +269,7 @@ extern int gdb_has_a_terminal (void);
 
 /* From infrun.c */
 
-extern void start_remote (void);
+extern void start_remote (int from_tty);
 
 extern void normal_stop (void);
 
index 61afab28a9245ad05b4b6a8baf3e68b127265d65..b9652f657575858d3a1f3d2a10d399f4e86e79a7 100644 (file)
@@ -2,8 +2,9 @@
    process.
 
    Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-   1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free
-   Software Foundation, Inc.
+   1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+   2006
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -832,7 +833,7 @@ proceed (CORE_ADDR addr, enum target_signal siggnal, int step)
 /* Start remote-debugging of a machine over a serial link.  */
 
 void
-start_remote (void)
+start_remote (int from_tty)
 {
   init_thread_list ();
   init_wait_for_inferior ();
@@ -854,6 +855,12 @@ start_remote (void)
      is currently running and GDB state should be set to the same as
      for an async run. */
   wait_for_inferior ();
+
+  /* Now that the inferior has stopped, do any bookkeeping like
+     loading shared libraries.  We want to do this before normal_stop,
+     so that the displayed frame is up to date.  */
+  post_create_inferior (&current_target, from_tty);
+
   normal_stop ();
 }
 
index be807bcd19a2337615a64c04f5b3b32f6b8a407e..80e0cdd89240c41e3180b6925703bf8f6dbc93f2 100644 (file)
@@ -812,7 +812,7 @@ monitor_open (char *args, struct monitor_ops *mon_ops, int from_tty)
 
   monitor_printf (current_monitor->line_term);
 
-  start_remote ();
+  start_remote (from_tty);
 }
 
 /* Close out all files and local state before this target loses
index 8394ae5870871cad24dad7a303f20dee01286c0f..b788792aeabdb01b4da8c827a3416cd9e5ffa891 100644 (file)
@@ -148,8 +148,9 @@ sds_close (int quitting)
 /* Stub for catch_errors.  */
 
 static int
-sds_start_remote (void *dummy)
+sds_start_remote (void *from_tty_p)
 {
+  int from_tty = * (int *) from_tty;
   int c;
   unsigned char buf[200];
 
@@ -173,7 +174,7 @@ sds_start_remote (void *dummy)
 
   immediate_quit--;
 
-  start_remote ();             /* Initialize gdb process mechanisms */
+  start_remote (from_tty);     /* Initialize gdb process mechanisms */
   return 1;
 }
 
@@ -224,7 +225,7 @@ device is attached to the remote system (e.g. /dev/ttya).");
   /* Start the remote connection; if error (0), discard this target.
      In particular, if the user quits, be sure to discard it (we'd be
      in an inconsistent state otherwise).  */
-  if (!catch_errors (sds_start_remote, NULL,
+  if (!catch_errors (sds_start_remote, &from_tty,
                     "Couldn't establish connection to remote target\n",
                     RETURN_MASK_ALL))
     pop_target ();
index cf872b1a173fe130d4469cfee86b77ecae374400..98fe59d6331f804bdb203d5091181157bd20dbcf 100644 (file)
@@ -1987,20 +1987,13 @@ get_offsets (void)
   objfile_relocate (symfile_objfile, offs);
 }
 
-/* Stub for catch_errors.  */
-
-static int
-remote_start_remote_dummy (struct ui_out *uiout, void *dummy)
-{
-  start_remote ();             /* Initialize gdb process mechanisms.  */
-  /* NOTE: Return something >=0.  A -ve value is reserved for
-     catch_exceptions.  */
-  return 1;
-}
+/* Stub for catch_exception.  */
 
 static void
-remote_start_remote (struct ui_out *uiout, void *dummy)
+remote_start_remote (struct ui_out *uiout, void *from_tty_p)
 {
+  int from_tty = * (int *) from_tty_p;
+
   immediate_quit++;            /* Allow user to interrupt it.  */
 
   /* Ack any packet which the remote side has already sent.  */
@@ -2016,7 +2009,7 @@ remote_start_remote (struct ui_out *uiout, void *dummy)
   putpkt ("?");                        /* Initiate a query from remote machine.  */
   immediate_quit--;
 
-  remote_start_remote_dummy (uiout, dummy);
+  start_remote (from_tty);     /* Initialize gdb process mechanisms.  */
 }
 
 /* Open a connection to a remote debugger.
@@ -2458,7 +2451,8 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
      function.  See cli-dump.c.  */
   {
     struct gdb_exception ex
-      = catch_exception (uiout, remote_start_remote, NULL, RETURN_MASK_ALL);
+      = catch_exception (uiout, remote_start_remote, &from_tty,
+                        RETURN_MASK_ALL);
     if (ex.reason < 0)
       {
        pop_target ();
@@ -2478,8 +2472,6 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
       getpkt (&rs->buf, &rs->buf_size, 0);
     }
 
-  post_create_inferior (&current_target, from_tty);
-
   if (exec_bfd)        /* No use without an exec file.  */
     remote_check_symbols (symfile_objfile);
 }