public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
From: jkratoch@sourceware.org
To: archer-commits@sourceware.org
Subject: [SCM]  master: Merge remote branch 'gdb/master'
Date: Sun, 28 Nov 2010 18:02:00 -0000	[thread overview]
Message-ID: <20101128180202.6567.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  f436a264c48a1c9af4df3ce44f5a4a2b3baf9491 (commit)
       via  3d2e431c087213db1819fd1f79ec6f1615bb11b2 (commit)
       via  7c77df928722862f8a421fa01d7d130536fcda28 (commit)
      from  c1ba9992999df7398c4ecd1b5c5fd2744a94b698 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit f436a264c48a1c9af4df3ce44f5a4a2b3baf9491
Merge: c1ba999 3d2e431
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sun Nov 28 19:01:46 2010 +0100

    Merge remote branch 'gdb/master'

commit 3d2e431c087213db1819fd1f79ec6f1615bb11b2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sun Nov 28 04:33:45 2010 +0000

    gdb/
    	Fix step_resume_breakpoint unsaved during an infcall.
    	* gdbthread.h (struct thread_control_state): Move here field
    	step_resume_breakpoint ...
    	(struct thread_info): ... from here.
    	* infrun.c (save_infcall_control_state): Reset
    	control.step_resume_breakpoint to NULL.
    	(restore_infcall_control_state, discard_infcall_control_state): Delete
    	control.step_resume_breakpoint.
    	* arm-linux-tdep.c, infrun.c, thread.c: Update all the references to
    	the moved field.
    
    gdb/testsuite/
    	Fix step_resume_breakpoint unsaved during an infcall.
    	* gdb.base/step-resume-infcall.exp: New file.
    	* gdb.base/step-resume-infcall.c: New file.

commit 7c77df928722862f8a421fa01d7d130536fcda28
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sun Nov 28 04:31:21 2010 +0000

    gdb/
    	Rename and move inferior_thread_state and inferior_status.
    	* gdbthread.h (struct thread_control_state): New struct, move fields
    	step_range_start, step_range_end, step_frame_id, step_stack_frame_id,
    	trap_expected, proceed_to_finish, in_infcall, step_over_calls,
    	stop_step and stop_bpstat here from struct thread_info.
    	(struct thread_suspend_state): New struct, move field stop_signal here
    	from struct thread_info.
    	(struct thread_info): Move the fields above from this struct.
    	* inferior.h: Move the inferior_thread_state and inferior_status
    	declarations comment to their definitions at infrun.c.
    	(struct inferior_control_state): New struct, move field stop_soon from
    	struct inferior here.
    	(struct inferior_suspend_state): New empty struct.
    	(struct inferior): New fields control and suspend.  Move out field
    	stop_soon.
    	* infrun.c (struct inferior_thread_state): Rename to ...
    	(infcall_suspend_state): ... here.  Replace field stop_signal by
    	fields thread_suspend and inferior_suspend.
    	(save_inferior_thread_state): Rename to ...
    	(save_infcall_suspend_state): ... here.  New variable inf.  Update the
    	code for new fields.
    	(restore_inferior_thread_state): Rename to ...
    	(restore_infcall_suspend_state): ... here.  New variable inf.  Update
    	the code for new fields.
    	(do_restore_inferior_thread_state_cleanup): Rename to ...
    	(do_restore_infcall_suspend_state_cleanup): ... here.
    	(make_cleanup_restore_inferior_thread_state): Rename to ...
    	(make_cleanup_restore_infcall_suspend_state): ... here.
    	(discard_inferior_thread_state): Rename to ...
    	(discard_infcall_suspend_state): ... here.
    	(get_inferior_thread_state_regcache): Rename to ...
    	(get_infcall_suspend_state_regcache): ... here.
    	(struct inferior_status): Rename to ...
    	(struct infcall_control_state): ... here.  Replace fields
    	step_range_start, step_range_end, step_frame_id, step_stack_frame_id,
    	trap_expected, proceed_to_finish, in_infcall, step_over_calls,
    	stop_step, stop_bpstat and stop_soon by fields thread_control and
    	inferior_control.
    	(save_inferior_status): Rename to ...
    	(save_infcall_control_state): ... here.  Update the code for new
    	fields.
    	(restore_inferior_status): Rename to ...
    	(restore_infcall_control_state): ... here.  Update the code for new
    	fields.
    	(do_restore_inferior_status_cleanup): Rename to ...
    	(do_restore_infcall_control_state_cleanup): ... here.
    	(make_cleanup_restore_inferior_status): Rename to ...
    	(make_cleanup_restore_infcall_control_state): ... here.
    	(discard_inferior_status): Rename to ...
    	(discard_infcall_control_state): ... here.
    	* alpha-tdep.c, breakpoint.c, dummy-frame.c, dummy-frame.h,
    	exceptions.c, fbsd-nat.c, gdbthread.h, infcall.c, infcmd.c,
    	inferior.c, inferior.h, infrun.c, linux-nat.c, mi/mi-interp.c,
    	mips-tdep.c, procfs.c, solib-irix.c, solib-osf.c, solib-spu.c,
    	solib-sunos.c, solib-svr4.c, thread.c, windows-nat.c: Update all the
    	references to the moved fields and renamed functions.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog                                  |   72 +++
 gdb/alpha-tdep.c                               |    2 +-
 gdb/arm-linux-tdep.c                           |    5 +-
 gdb/breakpoint.c                               |    6 +-
 gdb/dummy-frame.c                              |   13 +-
 gdb/dummy-frame.h                              |    4 +-
 gdb/exceptions.c                               |    5 +-
 gdb/fbsd-nat.c                                 |    4 +-
 gdb/gdbthread.h                                |  144 ++++---
 gdb/infcall.c                                  |   41 +-
 gdb/infcmd.c                                   |   74 ++--
 gdb/inferior.c                                 |    2 +-
 gdb/inferior.h                                 |   69 ++--
 gdb/infrun.c                                   |  559 ++++++++++++------------
 gdb/linux-nat.c                                |   12 +-
 gdb/mi/mi-interp.c                             |    4 +-
 gdb/mips-tdep.c                                |    2 +-
 gdb/procfs.c                                   |    4 +-
 gdb/solib-irix.c                               |   10 +-
 gdb/solib-osf.c                                |   10 +-
 gdb/solib-spu.c                                |    4 +-
 gdb/solib-sunos.c                              |   10 +-
 gdb/solib-svr4.c                               |   10 +-
 gdb/testsuite/ChangeLog                        |    6 +
 gdb/testsuite/gdb.base/step-resume-infcall.c   |   47 ++
 gdb/testsuite/gdb.base/step-resume-infcall.exp |   52 +++
 gdb/thread.c                                   |   14 +-
 gdb/windows-nat.c                              |    8 +-
 28 files changed, 705 insertions(+), 488 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/step-resume-infcall.c
 create mode 100644 gdb/testsuite/gdb.base/step-resume-infcall.exp

First 500 lines of diff:
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 39abfcf..a7aa825 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,75 @@
+2010-11-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix step_resume_breakpoint unsaved during an infcall.
+	* gdbthread.h (struct thread_control_state): Move here field
+	step_resume_breakpoint ...
+	(struct thread_info): ... from here.
+	* infrun.c (save_infcall_control_state): Reset
+	control.step_resume_breakpoint to NULL.
+	(restore_infcall_control_state, discard_infcall_control_state): Delete
+	control.step_resume_breakpoint.
+	* arm-linux-tdep.c, infrun.c, thread.c: Update all the references to
+	the moved field.
+
+2010-11-28  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Rename and move inferior_thread_state and inferior_status.
+	* gdbthread.h (struct thread_control_state): New struct, move fields
+	step_range_start, step_range_end, step_frame_id, step_stack_frame_id,
+	trap_expected, proceed_to_finish, in_infcall, step_over_calls,
+	stop_step and stop_bpstat here from struct thread_info.
+	(struct thread_suspend_state): New struct, move field stop_signal here
+	from struct thread_info.
+	(struct thread_info): Move the fields above from this struct.
+	* inferior.h: Move the inferior_thread_state and inferior_status
+	declarations comment to their definitions at infrun.c.
+	(struct inferior_control_state): New struct, move field stop_soon from
+	struct inferior here.
+	(struct inferior_suspend_state): New empty struct.
+	(struct inferior): New fields control and suspend.  Move out field
+	stop_soon.
+	* infrun.c (struct inferior_thread_state): Rename to ...
+	(infcall_suspend_state): ... here.  Replace field stop_signal by
+	fields thread_suspend and inferior_suspend.
+	(save_inferior_thread_state): Rename to ...
+	(save_infcall_suspend_state): ... here.  New variable inf.  Update the
+	code for new fields.
+	(restore_inferior_thread_state): Rename to ...
+	(restore_infcall_suspend_state): ... here.  New variable inf.  Update
+	the code for new fields.
+	(do_restore_inferior_thread_state_cleanup): Rename to ...
+	(do_restore_infcall_suspend_state_cleanup): ... here.
+	(make_cleanup_restore_inferior_thread_state): Rename to ...
+	(make_cleanup_restore_infcall_suspend_state): ... here.
+	(discard_inferior_thread_state): Rename to ...
+	(discard_infcall_suspend_state): ... here.
+	(get_inferior_thread_state_regcache): Rename to ...
+	(get_infcall_suspend_state_regcache): ... here.
+	(struct inferior_status): Rename to ...
+	(struct infcall_control_state): ... here.  Replace fields
+	step_range_start, step_range_end, step_frame_id, step_stack_frame_id,
+	trap_expected, proceed_to_finish, in_infcall, step_over_calls,
+	stop_step, stop_bpstat and stop_soon by fields thread_control and
+	inferior_control.
+	(save_inferior_status): Rename to ...
+	(save_infcall_control_state): ... here.  Update the code for new
+	fields.
+	(restore_inferior_status): Rename to ...
+	(restore_infcall_control_state): ... here.  Update the code for new
+	fields.
+	(do_restore_inferior_status_cleanup): Rename to ...
+	(do_restore_infcall_control_state_cleanup): ... here.
+	(make_cleanup_restore_inferior_status): Rename to ...
+	(make_cleanup_restore_infcall_control_state): ... here.
+	(discard_inferior_status): Rename to ...
+	(discard_infcall_control_state): ... here.
+	* alpha-tdep.c, breakpoint.c, dummy-frame.c, dummy-frame.h,
+	exceptions.c, fbsd-nat.c, gdbthread.h, infcall.c, infcmd.c,
+	inferior.c, inferior.h, infrun.c, linux-nat.c, mi/mi-interp.c,
+	mips-tdep.c, procfs.c, solib-irix.c, solib-osf.c, solib-spu.c,
+	solib-sunos.c, solib-svr4.c, thread.c, windows-nat.c: Update all the
+	references to the moved fields and renamed functions.
+
 2010-11-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* infcall.c (struct inferior_thread_state) <siginfo_gdbarch>: Fix up
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index b470470..2ce82b3 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -992,7 +992,7 @@ alpha_heuristic_proc_start (struct gdbarch *gdbarch, CORE_ADDR pc)
   /* It's not clear to me why we reach this point when stopping quietly,
      but with this test, at least we don't print out warnings for every
      child forked (eg, on decstation).  22apr93 rich@cygnus.com.  */
-  if (inf->stop_soon == NO_STOP_QUIETLY)
+  if (inf->control.stop_soon == NO_STOP_QUIETLY)
     {
       static int blurb_printed = 0;
 
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index aa7d0af..4758ded 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -791,7 +791,8 @@ arm_linux_copy_svc (struct gdbarch *gdbarch, uint32_t insn, CORE_ADDR to,
 	    fprintf_unfiltered (gdb_stdlog, "displaced: unwind pc = %lx. "
 	      "Setting momentary breakpoint.\n", (unsigned long) return_to);
 
-	  gdb_assert (inferior_thread ()->step_resume_breakpoint == NULL);
+	  gdb_assert (inferior_thread ()->control.step_resume_breakpoint
+		      == NULL);
 
 	  sal = find_pc_line (return_to, 0);
 	  sal.pc = return_to;
@@ -802,7 +803,7 @@ arm_linux_copy_svc (struct gdbarch *gdbarch, uint32_t insn, CORE_ADDR to,
 
 	  if (frame)
 	    {
-	      inferior_thread ()->step_resume_breakpoint
+	      inferior_thread ()->control.step_resume_breakpoint
         	= set_momentary_breakpoint (gdbarch, sal, get_frame_id (frame),
 					    bp_step_resume);
 
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 2f4e10e..1d66eef 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -3008,7 +3008,7 @@ breakpoint_about_to_proceed (void)
 	 interrupt the command list.  When the call finishes
 	 successfully, the inferior will be standing at the same
 	 breakpoint as if nothing happened.  */
-      if (tp->in_infcall)
+      if (tp->control.in_infcall)
 	return;
     }
 
@@ -3127,7 +3127,7 @@ bpstat_do_actions (void)
        and only return when it is stopped at the next breakpoint, we
        keep doing breakpoint actions until it returns false to
        indicate the inferior was not resumed.  */
-    if (!bpstat_do_actions_1 (&inferior_thread ()->stop_bpstat))
+    if (!bpstat_do_actions_1 (&inferior_thread ()->control.stop_bpstat))
       break;
 }
 
@@ -9680,7 +9680,7 @@ bpstat_remove_breakpoint_callback (struct thread_info *th, void *data)
 {
   struct breakpoint *bpt = data;
 
-  bpstat_remove_bp_location (th->stop_bpstat, bpt);
+  bpstat_remove_bp_location (th->control.stop_bpstat, bpt);
   return 0;
 }
 
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index 66f4c8c..b3a32d2 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -43,7 +43,7 @@ struct dummy_frame
      gdbarch_dummy_id.  */
   struct frame_id id;
   /* The caller's state prior to the call.  */
-  struct inferior_thread_state *caller_state;
+  struct infcall_suspend_state *caller_state;
 };
 
 static struct dummy_frame *dummy_frame_stack = NULL;
@@ -86,7 +86,7 @@ deprecated_pc_in_call_dummy (struct gdbarch *gdbarch, CORE_ADDR pc)
    dummy-frame stack.  */
 
 void
-dummy_frame_push (struct inferior_thread_state *caller_state,
+dummy_frame_push (struct infcall_suspend_state *caller_state,
 		  const struct frame_id *dummy_id)
 {
   struct dummy_frame *dummy_frame;
@@ -106,7 +106,7 @@ remove_dummy_frame (struct dummy_frame **dummy_ptr)
   struct dummy_frame *dummy = *dummy_ptr;
 
   *dummy_ptr = dummy->next;
-  discard_inferior_thread_state (dummy->caller_state);
+  discard_infcall_suspend_state (dummy->caller_state);
   xfree (dummy);
 }
 
@@ -118,9 +118,9 @@ pop_dummy_frame (struct dummy_frame **dummy_ptr)
 {
   struct dummy_frame *dummy;
 
-  restore_inferior_thread_state ((*dummy_ptr)->caller_state);
+  restore_infcall_suspend_state ((*dummy_ptr)->caller_state);
 
-  /* restore_inferior_status frees inf_state,
+  /* restore_infcall_control_state frees inf_state,
      all that remains is to pop *dummy_ptr */
   dummy = *dummy_ptr;
   *dummy_ptr = dummy->next;
@@ -220,7 +220,8 @@ dummy_frame_sniffer (const struct frame_unwind *self,
 	      struct dummy_frame_cache *cache;
 
 	      cache = FRAME_OBSTACK_ZALLOC (struct dummy_frame_cache);
-	      cache->prev_regcache = get_inferior_thread_state_regcache (dummyframe->caller_state);
+	      cache->prev_regcache = get_infcall_suspend_state_regcache
+						   (dummyframe->caller_state);
 	      cache->this_id = this_id;
 	      (*this_prologue_cache) = cache;
 	      return 1;
diff --git a/gdb/dummy-frame.h b/gdb/dummy-frame.h
index c97301c..9e633a0 100644
--- a/gdb/dummy-frame.h
+++ b/gdb/dummy-frame.h
@@ -23,7 +23,7 @@
 
 #include "frame.h"
 
-struct inferior_thread_state;
+struct infcall_suspend_state;
 struct frame_unwind;
 
 /* Push the information needed to identify, and unwind from, a dummy
@@ -39,7 +39,7 @@ struct frame_unwind;
    be expanded so that it knowns the lower/upper extent of the dummy
    frame's code.  */
 
-extern void dummy_frame_push (struct inferior_thread_state *caller_state,
+extern void dummy_frame_push (struct infcall_suspend_state *caller_state,
                               const struct frame_id *dummy_id);
 
 /* Pop the dummy frame DUMMY_ID, restoring program state to that before the
diff --git a/gdb/exceptions.c b/gdb/exceptions.c
index ec9b9be..bf042ad 100644
--- a/gdb/exceptions.c
+++ b/gdb/exceptions.c
@@ -226,7 +226,10 @@ throw_exception (struct gdb_exception exception)
   /* Perhaps it would be cleaner to do this via the cleanup chain (not sure
      I can think of a reason why that is vital, though).  */
   if (tp != NULL)
-    bpstat_clear_actions (tp->stop_bpstat);	/* Clear queued breakpoint commands */
+    {
+      /* Clear queued breakpoint commands */
+      bpstat_clear_actions (tp->control.stop_bpstat);
+    }
 
   disable_current_display ();
   do_cleanups (ALL_CLEANUPS);
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 9e2f44d..a07c531 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -143,7 +143,7 @@ fbsd_find_memory_regions (find_memory_region_ftype func, void *obfd)
 static int
 find_signalled_thread (struct thread_info *info, void *data)
 {
-  if (info->stop_signal != TARGET_SIGNAL_0
+  if (info->suspend.stop_signal != TARGET_SIGNAL_0
       && ptid_get_pid (info->ptid) == ptid_get_pid (inferior_ptid))
     return 1;
 
@@ -157,7 +157,7 @@ find_stop_signal (void)
     iterate_over_threads (find_signalled_thread, NULL);
 
   if (info)
-    return info->stop_signal;
+    return info->suspend.stop_signal;
   else
     return TARGET_SIGNAL_0;
 }
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index cd24eaf..c6a1d5c 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -29,38 +29,12 @@ struct symtab;
 #include "ui-out.h"
 #include "inferior.h"
 
-struct thread_info
-{
-  struct thread_info *next;
-  ptid_t ptid;			/* "Actual process id";
-				    In fact, this may be overloaded with 
-				    kernel thread id, etc.  */
-  int num;			/* Convenient handle (GDB thread id) */
+/* Inferior thread specific part of `struct infcall_control_state'.
 
-  /* Non-zero means the thread is executing.  Note: this is different
-     from saying that there is an active target and we are stopped at
-     a breakpoint, for instance.  This is a real indicator whether the
-     thread is off and running.  */
-  /* This field is internal to thread.c.  Never access it directly,
-     use is_executing instead.  */
-  int executing_;
-
-  /* Frontend view of the thread state.  Note that the RUNNING/STOPPED
-     states are different from EXECUTING.  When the thread is stopped
-     internally while handling an internal event, like a software
-     single-step breakpoint, EXECUTING will be false, but running will
-     still be true.  As a possible future extension, this could turn
-     into enum { stopped, exited, stepping, finishing, until(ling),
-     running ... }  */
-  /* This field is internal to thread.c.  Never access it directly,
-     use is_running instead.  */
-  int state_;
-
-  /* If this is > 0, then it means there's code out there that relies
-     on this thread being listed.  Don't delete it from the lists even
-     if we detect it exiting.  */
-  int refcount;
+   Inferior process counterpart is `struct inferior_control_state'.  */
 
+struct thread_control_state
+{
   /* User/external stepping state.  */
 
   /* Step-resume or longjmp-resume breakpoint.  */
@@ -88,17 +62,6 @@ struct thread_info
      any inlined frames).  */
   struct frame_id step_stack_frame_id;
 
-  int current_line;
-  struct symtab *current_symtab;
-
-  /* Internal stepping state.  */
-
-  /* Record the pc of the thread the last time it stopped.  This is
-     maintained by proceed and keep_going, and used in
-     adjust_pc_after_break to distinguish a hardware single-step
-     SIGTRAP from a breakpoint SIGTRAP.  */
-  CORE_ADDR prev_pc;
-
   /* Nonzero if we are presently stepping over a breakpoint.
 
      If we hit a breakpoint or watchpoint, and then continue, we need
@@ -123,6 +86,85 @@ struct thread_info
      by keep_going.  */
   int trap_expected;
 
+  /* Nonzero if the thread is being proceeded for a "finish" command
+     or a similar situation when stop_registers should be saved.  */
+  int proceed_to_finish;
+
+  /* Nonzero if the thread is being proceeded for an inferior function
+     call.  */
+  int in_infcall;
+
+  enum step_over_calls_kind step_over_calls;
+
+  /* Nonzero if stopped due to a step command.  */
+  int stop_step;
+
+  /* Chain containing status of breakpoint(s) the thread stopped
+     at.  */
+  bpstat stop_bpstat;
+};
+
+/* Inferior thread specific part of `struct infcall_suspend_state'.
+
+   Inferior process counterpart is `struct inferior_suspend_state'.  */
+
+struct thread_suspend_state
+{
+  /* Last signal that the inferior received (why it stopped).  */
+  enum target_signal stop_signal;
+};
+
+struct thread_info
+{
+  struct thread_info *next;
+  ptid_t ptid;			/* "Actual process id";
+				    In fact, this may be overloaded with 
+				    kernel thread id, etc.  */
+  int num;			/* Convenient handle (GDB thread id) */
+
+  /* Non-zero means the thread is executing.  Note: this is different
+     from saying that there is an active target and we are stopped at
+     a breakpoint, for instance.  This is a real indicator whether the
+     thread is off and running.  */
+  /* This field is internal to thread.c.  Never access it directly,
+     use is_executing instead.  */
+  int executing_;
+
+  /* Frontend view of the thread state.  Note that the RUNNING/STOPPED
+     states are different from EXECUTING.  When the thread is stopped
+     internally while handling an internal event, like a software
+     single-step breakpoint, EXECUTING will be false, but running will
+     still be true.  As a possible future extension, this could turn
+     into enum { stopped, exited, stepping, finishing, until(ling),
+     running ... }  */
+  /* This field is internal to thread.c.  Never access it directly,
+     use is_running instead.  */
+  int state_;
+
+  /* If this is > 0, then it means there's code out there that relies
+     on this thread being listed.  Don't delete it from the lists even
+     if we detect it exiting.  */
+  int refcount;
+
+  /* State of GDB control of inferior thread execution.
+     See `struct thread_control_state'.  */
+  struct thread_control_state control;
+
+  /* State of inferior thread to restore after GDB is done with an inferior
+     call.  See `struct thread_suspend_state'.  */
+  struct thread_suspend_state suspend;
+
+  int current_line;
+  struct symtab *current_symtab;
+
+  /* Internal stepping state.  */
+
+  /* Record the pc of the thread the last time it stopped.  This is
+     maintained by proceed and keep_going, and used in
+     adjust_pc_after_break to distinguish a hardware single-step
+     SIGTRAP from a breakpoint SIGTRAP.  */
+  CORE_ADDR prev_pc;
+
   /* Should we step over breakpoint next time keep_going is called?  */
   int stepping_over_breakpoint;
 
@@ -153,19 +195,6 @@ struct thread_info
      command.  */
   struct continuation *intermediate_continuations;
 
-  /* Nonzero if the thread is being proceeded for a "finish" command
-     or a similar situation when stop_registers should be saved.  */
-  int proceed_to_finish;
-
-  /* Nonzero if the thread is being proceeded for an inferior function
-     call.  */
-  int in_infcall;
-
-  enum step_over_calls_kind step_over_calls;
-
-  /* Nonzero if stopped due to a step command.  */
-  int stop_step;
-
   /* If stepping, nonzero means step count is > 1 so don't print frame
      next time inferior stops if it stops due to stepping.  */
   int step_multi;
@@ -175,13 +204,6 @@ struct thread_info
      resume of the thread, and not immediately.  */
   struct target_waitstatus pending_follow;
 
-  /* Last signal that the inferior received (why it stopped).  */
-  enum target_signal stop_signal;
-
-  /* Chain containing status of breakpoint(s) the thread stopped
-     at.  */
-  bpstat stop_bpstat;
-
   /* True if this thread has been explicitly requested to stop.  */
   int stop_requested;
 
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 68343b8..6eb1bbf 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -360,16 +360,18 @@ run_inferior_call (struct thread_info *call_thread, CORE_ADDR real_pc)
 {
   volatile struct gdb_exception e;
   int saved_async = 0;
-  int saved_in_infcall = call_thread->in_infcall;
+  int saved_in_infcall = call_thread->control.in_infcall;
   ptid_t call_thread_ptid = call_thread->ptid;
   char *saved_target_shortname = xstrdup (target_shortname);
 
-  call_thread->in_infcall = 1;
+  call_thread->control.in_infcall = 1;
 
   clear_proceed_status ();
 
   disable_watchpoints_before_interactive_call_start ();
-  call_thread->proceed_to_finish = 1; /* We want stop_registers, please... */
+
+  /* We want stop_registers, please... */
+  call_thread->control.proceed_to_finish = 1;
 
   if (target_can_async_p ())
     saved_async = target_async_mask (0);
@@ -397,11 +399,11 @@ run_inferior_call (struct thread_info *call_thread, CORE_ADDR real_pc)
   if (e.reason < 0)
     {
       if (call_thread != NULL)
-	breakpoint_auto_delete (call_thread->stop_bpstat);
+	breakpoint_auto_delete (call_thread->control.stop_bpstat);
     }
 
   if (call_thread != NULL)
-    call_thread->in_infcall = saved_in_infcall;
+    call_thread->control.in_infcall = saved_in_infcall;
 
   xfree (saved_target_shortname);
 
@@ -440,9 +442,9 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
   struct type *values_type, *target_values_type;
   unsigned char struct_return = 0, lang_struct_return = 0;
   CORE_ADDR struct_addr = 0;
-  struct inferior_status *inf_status;
+  struct infcall_control_state *inf_status;
   struct cleanup *inf_status_cleanup;
-  struct inferior_thread_state *caller_state;
+  struct infcall_suspend_state *caller_state;
   CORE_ADDR funaddr;
   CORE_ADDR real_pc;
   struct type *ftype = check_typedef (value_type (function));
@@ -473,16 +475,17 @@ call_function_by_hand (struct value *function, int nargs, struct value **args)
 
   /* A cleanup for the inferior status.


hooks/post-receive
--
Repository for Project Archer.


             reply	other threads:[~2010-11-28 18:02 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-28 18:02 jkratoch [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-02-01 19:25 jkratoch
2011-01-29 16:44 jkratoch
2011-01-25 12:53 pmuldoon
2011-01-25  9:10 jkratoch
2011-01-17 13:31 pmuldoon
2011-01-15 11:35 jkratoch
2011-01-14  8:04 jkratoch
2011-01-10 12:00 pmuldoon
2011-01-10  9:10 jkratoch
2011-01-07  5:57 jkratoch
2011-01-06 12:22 pmuldoon
2011-01-04  4:59 jkratoch
2010-12-31 22:30 jkratoch
2010-12-30  7:22 jkratoch
2010-12-22 20:11 swagiaal
2010-12-14 17:13 jkratoch
2010-12-14  8:27 pmuldoon
2010-12-10 17:16 jkratoch
2010-12-08 15:55 pmuldoon
2010-12-06  6:40 jkratoch
2010-12-04  1:03 jkratoch
2010-12-02 15:47 pmuldoon
2010-11-30  0:15 jkratoch
2010-11-28  5:41 jkratoch
2010-11-16  5:04 jkratoch
2010-11-12 11:47 pmuldoon
2010-11-11 11:39 pmuldoon
2010-11-10  9:09 pmuldoon
2010-11-08  9:34 pmuldoon
2010-11-07 18:15 jkratoch
2010-10-22 14:28 pmuldoon
2010-10-20 12:48 pmuldoon
2010-10-19 16:01 pmuldoon
2010-10-17 20:27 jkratoch
2010-10-15 17:07 jkratoch
2010-10-14 20:55 jkratoch
2010-10-13 15:06 jkratoch
2010-10-12 16:45 jkratoch
2010-10-11  9:21 jkratoch
2010-10-11  8:47 pmuldoon
2010-10-06  9:00 pmuldoon
2010-09-30  8:56 pmuldoon
2010-09-27  9:48 jkratoch
2010-09-20 12:34 pmuldoon
2010-09-16 20:49 ratmice
2010-09-04 19:59 jkratoch
2010-09-03  7:26 jkratoch
2010-09-02 15:04 jkratoch
2010-09-01 15:29 swagiaal
2010-08-23 13:54 jkratoch
2010-08-20 17:49 jkratoch
2010-08-12 15:19 swagiaal
2010-08-06 15:32 jkratoch
2010-07-29 19:17 swagiaal
2010-07-22 16:57 jkratoch
2010-07-22 16:26 jkratoch
2010-07-20 18:51 jkratoch
2010-07-09  8:09 jkratoch
2010-06-24  8:55 jkratoch
2010-06-23 20:56 jkratoch
2010-06-17 12:53 jkratoch
2010-06-07  8:14 jkratoch
2010-06-02 19:03 jkratoch
2010-05-28 21:27 jkratoch
2010-05-26 18:36 swagiaal
2010-05-17 18:02 jkratoch
2010-05-17  1:04 jkratoch
2010-05-10 19:30 swagiaal
2010-05-05 14:24 swagiaal
2010-05-03 13:49 jkratoch
2010-05-03  8:48 jkratoch
2010-05-02 23:10 jkratoch
2010-05-02 15:54 jkratoch
2010-04-30  7:11 jkratoch
2010-04-28 11:44 jkratoch
2010-04-25 20:22 jkratoch
2010-04-09 20:37 jkratoch
2010-04-07  1:41 jkratoch
2010-04-05 10:11 jkratoch
2010-04-04 11:58 jkratoch
2010-03-22 23:58 jkratoch
2010-03-20 17:23 jkratoch
2010-03-18 10:01 jkratoch
2010-03-17 18:04 jkratoch
2010-03-12 18:35 jkratoch
2010-03-04 22:28 jkratoch
2010-03-01 22:16 jkratoch
2010-02-26 22:16 jkratoch
2010-02-26 17:50 jkratoch
2010-02-17 16:01 swagiaal
2010-02-13 22:51 jkratoch
2010-02-11 12:51 jkratoch
2010-02-09 19:01 jkratoch
2010-02-08 21:46 jkratoch
2010-02-03  4:38 jkratoch
2010-01-31 17:25 jkratoch
2010-01-28 19:17 swagiaal
2010-01-28 10:56 jkratoch
2010-01-27 19:21 swagiaal
2010-01-27  8:08 jkratoch
2010-01-26 18:58 swagiaal
2010-01-20 21:48 jkratoch
2010-01-15  2:09 jkratoch
2010-01-15  0:52 jkratoch
2010-01-14 22:23 jkratoch
2010-01-13 20:53 jkratoch
2010-01-10 20:47 jkratoch
2010-01-09 10:03 jkratoch
2010-01-09  8:41 jkratoch
2010-01-08 19:16 jkratoch
2009-12-06 17:43 jkratoch
2009-12-03 16:32 jkratoch
2009-11-30 13:59 jkratoch
2009-11-24 21:21 jkratoch
2009-11-21  9:24 jkratoch
2009-11-20 21:06 jkratoch
2009-11-20 15:57 jkratoch
2009-11-17 19:59 jkratoch
2009-11-16  2:22 jkratoch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20101128180202.6567.qmail@sourceware.org \
    --to=jkratoch@sourceware.org \
    --cc=archer-commits@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).