aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/target.c')
-rw-r--r--gdb/target.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gdb/target.c b/gdb/target.c
index bf82452..6abbd00 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -154,7 +154,7 @@ add_target (t)
target_struct_allocsize * sizeof (*target_structs));
}
target_structs[target_struct_size++] = t;
- cleanup_target (t);
+/* cleanup_target (t);*/
if (targetlist == NULL)
add_prefix_cmd ("target", class_run, target_command,
@@ -445,7 +445,8 @@ unpush_target (t)
{
struct target_stack_item *cur, *prev;
- t->to_close (0); /* Let it clean up */
+ if (t->to_close)
+ t->to_close (0); /* Let it clean up */
/* Look for the specified target. Note that we assume that a target
can only occur once in the target stack. */
@@ -668,6 +669,8 @@ target_xfer_memory (memaddr, myaddr, len, write)
for (item = target_stack; item; item = item->next)
{
t = item->target_ops;
+ if (!t->to_has_memory)
+ continue;
res = t->to_xfer_memory (memaddr, myaddr, curlen, write, t);
if (res > 0)
@@ -718,6 +721,9 @@ target_info (args, from_tty)
{
t = item->target_ops;
+ if (!t->to_has_memory)
+ continue;
+
if ((int)(t->to_stratum) <= (int)dummy_stratum)
continue;
if (has_all_mem)