aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
authorStu Grossman <grossman@cygnus>1994-08-04 17:45:26 +0000
committerStu Grossman <grossman@cygnus>1994-08-04 17:45:26 +0000
commita3ecbe7c52aebaf22ee74dde39964487d606bdb0 (patch)
tree2b11fba729f636b98b7ef5436113ddbeaaf2b5ca /gdb/target.c
parenta1e0ba7a1a64ea102542638654a91845393b29f5 (diff)
downloadgdb-a3ecbe7c52aebaf22ee74dde39964487d606bdb0.zip
gdb-a3ecbe7c52aebaf22ee74dde39964487d606bdb0.tar.gz
gdb-a3ecbe7c52aebaf22ee74dde39964487d606bdb0.tar.bz2
* target.c (add_target): Don't call clean_target on target
vectors anymore. * (unpush_target): Test for to_close being set before calling. * (target_xfer_memory, target_info): Check for to_has_memory before playing with memory.
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)