aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-05-04 09:54:17 +0000
committerPedro Alves <palves@redhat.com>2009-05-04 09:54:17 +0000
commit67ce33d768510c7f826be66a2b4ea22c7caea801 (patch)
treec188ac13bb0d349490436563b7169e8c2ed1d12b
parentd067a4028a5fa06b200bd8a00b63a11f987e753c (diff)
downloadgdb-67ce33d768510c7f826be66a2b4ea22c7caea801.zip
gdb-67ce33d768510c7f826be66a2b4ea22c7caea801.tar.gz
gdb-67ce33d768510c7f826be66a2b4ea22c7caea801.tar.bz2
* go32-nat.c (go32_stop): Delete.
(go32_kill_inferior): Rewrite to only call go32_mourn_inferior. (go32_create_inferior): Don't call go32_stop or go32_kill_inferior. (go32_mourn_inferior): Inline go32_stop and go32_kill_inferior here. (init_go32_ops): Don't register go32_stop.
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/go32-nat.c41
2 files changed, 26 insertions, 25 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 84373d1..a42483f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2009-05-04 Pedro Alves <pedro@codesourcery.com>
+
+ * go32-nat.c (go32_stop): Delete.
+ (go32_kill_inferior): Rewrite to only call go32_mourn_inferior.
+ (go32_create_inferior): Don't call go32_stop or
+ go32_kill_inferior.
+ (go32_mourn_inferior): Inline go32_stop and go32_kill_inferior
+ here.
+ (init_go32_ops): Don't register go32_stop.
+
2009-05-02 Eli Zaretskii <eliz@gnu.org>
* dbxread.c (read_dbx_symtab): Avoid compiler warnings for
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index edcdbd5..0f525bf 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -249,7 +249,6 @@ static int go32_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len,
struct mem_attrib *attrib,
struct target_ops *target);
static void go32_files_info (struct target_ops *target);
-static void go32_stop (ptid_t);
static void go32_kill_inferior (struct target_ops *ops);
static void go32_create_inferior (struct target_ops *ops, char *exec_file,
char *args, char **env, int from_tty);
@@ -635,25 +634,9 @@ go32_files_info (struct target_ops *target)
}
static void
-go32_stop (ptid_t ptid)
-{
- normal_stop ();
- cleanup_client ();
- ptid = inferior_ptid;
- inferior_ptid = null_ptid;
- delete_thread_silent (ptid);
- prog_has_started = 0;
-}
-
-static void
go32_kill_inferior (struct target_ops *ops)
{
- redir_cmdline_delete (&child_cmd);
- resume_signal = -1;
- resume_is_step = 0;
- if (!ptid_equal (inferior_ptid, null_ptid))
- delete_thread_silent (inferior_ptid);
- unpush_target (&go32_ops);
+ go32_mourn_inferior (ops);
}
static void
@@ -671,11 +654,6 @@ go32_create_inferior (struct target_ops *ops, char *exec_file,
if (exec_file == 0)
exec_file = get_exec_file (1);
- if (prog_has_started)
- {
- go32_stop (inferior_ptid);
- go32_kill_inferior (ops);
- }
resume_signal = -1;
resume_is_step = 0;
@@ -749,6 +727,14 @@ go32_create_inferior (struct target_ops *ops, char *exec_file,
static void
go32_mourn_inferior (struct target_ops *ops)
{
+ ptid_t ptid;
+
+ redir_cmdline_delete (&child_cmd);
+ resume_signal = -1;
+ resume_is_step = 0;
+
+ cleanup_client ();
+
/* We need to make sure all the breakpoint enable bits in the DR7
register are reset when the inferior exits. Otherwise, if they
rerun the inferior, the uncleared bits may cause random SIGTRAPs,
@@ -757,7 +743,13 @@ go32_mourn_inferior (struct target_ops *ops)
at all times, but it doesn't, probably under an assumption that
the OS cleans up when the debuggee exits. */
i386_cleanup_dregs ();
- go32_kill_inferior (ops);
+
+ ptid = inferior_ptid;
+ inferior_ptid = null_ptid;
+ delete_thread_silent (ptid);
+ prog_has_started = 0;
+
+ unpush_target (ops);
generic_mourn_inferior ();
}
@@ -972,7 +964,6 @@ init_go32_ops (void)
go32_ops.to_create_inferior = go32_create_inferior;
go32_ops.to_mourn_inferior = go32_mourn_inferior;
go32_ops.to_can_run = go32_can_run;
- go32_ops.to_stop = go32_stop;
go32_ops.to_thread_alive = go32_thread_alive;
go32_ops.to_pid_to_str = go32_pid_to_str;
go32_ops.to_stratum = process_stratum;