aboutsummaryrefslogtreecommitdiff
path: root/gdb/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/exec.c')
-rw-r--r--gdb/exec.c32
1 files changed, 11 insertions, 21 deletions
diff --git a/gdb/exec.c b/gdb/exec.c
index 7ba2720..8b6f588 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -63,9 +63,6 @@ void _initialize_exec (void);
static struct target_ops exec_ops;
-/* True if the exec target is pushed on the stack. */
-static int using_exec_ops;
-
/* Whether to open exec and core files read-only or read-write. */
int write_files = 0;
@@ -115,22 +112,18 @@ exec_close (void)
static void
exec_close_1 (struct target_ops *self)
{
- using_exec_ops = 0;
+ struct program_space *ss;
+ struct cleanup *old_chain;
+ old_chain = save_current_program_space ();
+ ALL_PSPACES (ss)
{
- struct program_space *ss;
- struct cleanup *old_chain;
-
- old_chain = save_current_program_space ();
- ALL_PSPACES (ss)
- {
- set_current_program_space (ss);
- clear_section_table (current_target_sections);
- exec_close ();
- }
-
- do_cleanups (old_chain);
+ set_current_program_space (ss);
+ clear_section_table (current_target_sections);
+ exec_close ();
}
+
+ do_cleanups (old_chain);
}
void
@@ -445,11 +438,8 @@ add_target_sections (void *owner,
/* If these are the first file sections we can provide memory
from, push the file_stratum target. */
- if (!using_exec_ops)
- {
- using_exec_ops = 1;
- push_target (&exec_ops);
- }
+ if (!target_is_pushed (&exec_ops))
+ push_target (&exec_ops);
}
}