2011-06-23 Yao Qi <yao@codesourcery.com>
authorYao Qi <yao@codesourcery.com>
Thu, 23 Jun 2011 15:08:01 +0000 (15:08 +0000)
committerYao Qi <yao@codesourcery.com>
Thu, 23 Jun 2011 15:08:01 +0000 (15:08 +0000)
* infrun.c (start_remote): Move call init_wait_for_inferior to ...
* remote.c (remote_start_remote): ... here.
* monitor.c (monitor_open): ... here.

gdb/ChangeLog
gdb/infrun.c
gdb/monitor.c
gdb/remote.c

index b2ff7ffdf6d49ebd574b4831cc0822c21573ca65..e17e37025fb10032debd74ad6d6cb96f00975d20 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-23  Yao Qi  <yao@codesourcery.com>
+
+       * infrun.c (start_remote): Move call init_wait_for_inferior to ...
+       * remote.c (remote_start_remote): ... here.
+       * monitor.c (monitor_open): ... here.
+
 2011-06-23  Andrew Burgess  <aburgess@broadcom.com>
 
        * gdbtypes.c (append_composite_type_field_aligned): Fix
index 8616f99bd46619dd4f9f811eedd1ce6dd794dc32..a656cbf4bbb28e6e68736fb10f8d5f88d27ad6fd 100644 (file)
@@ -2246,7 +2246,6 @@ start_remote (int from_tty)
 {
   struct inferior *inferior;
 
-  init_wait_for_inferior ();
   inferior = current_inferior ();
   inferior->control.stop_soon = STOP_QUIETLY_REMOTE;
 
index 79fa1ba88d8e470d7376605ae67eef178a90aebf..90f36d9e721613393f8bfd74f816ce7d0f17d534 100644 (file)
@@ -844,6 +844,8 @@ monitor_open (char *args, struct monitor_ops *mon_ops, int from_tty)
 
   monitor_printf (current_monitor->line_term);
 
+  init_wait_for_inferior ();
+
   start_remote (from_tty);
 }
 
index 8cdf79e2f91518660b24787544dc3ea570afece7..19cc0b6748861c77d51d59cbae1af61f97a6b40d 100644 (file)
@@ -3280,6 +3280,17 @@ remote_start_remote (int from_tty, struct target_ops *target, int extended_p)
       /* Always add the main thread.  */
       add_thread_silent (inferior_ptid);
 
+      /* init_wait_for_inferior should be called before get_offsets in order
+        to manage `inserted' flag in bp loc in a correct state.
+        breakpoint_init_inferior, called from init_wait_for_inferior, set
+        `inserted' flag to 0, while before breakpoint_re_set, called from
+        start_remote, set `inserted' flag to 1.  In the initialization of
+        inferior, breakpoint_init_inferior should be called first, and then
+        breakpoint_re_set can be called.  If this order is broken, state of
+        `inserted' flag is wrong, and cause some problems on breakpoint
+        manipulation.  */
+      init_wait_for_inferior ();
+
       get_offsets ();          /* Get text, data & bss offsets.  */
 
       /* If we could not find a description using qXfer, and we know