summaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-07-24 12:49:24 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-07-24 12:49:24 +0000
commite5948e1c6cd2f29a221a1d464c37dac7173fe1bd (patch)
tree54b7785908b1d0cd6c7f12601512573035363b4e /gdb/target.c
parentd84858eba306a36e6e8860b267b5246950b69807 (diff)
downloadgdb-e5948e1c6cd2f29a221a1d464c37dac7173fe1bd.tar.gz
* target.c (memory_xfer_partial): Accesses to unmapped overlay
sections should always go to the executable file.
Diffstat (limited to 'gdb/target.c')
-rw-r--r--gdb/target.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c
index 2bb50e6f6b8..92a4d6ac2c9 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -1017,6 +1017,14 @@ memory_xfer_partial (struct target_ops *ops, void *readbuf, const void *writebuf
return xfer_memory (memaddr, readbuf, len, 0, NULL, ops);
}
+ /* Likewise for accesses to unmapped overlay sections. */
+ if (readbuf != NULL && overlay_debugging)
+ {
+ asection *section = find_pc_overlay (memaddr);
+ if (pc_in_unmapped_range (memaddr, section))
+ return xfer_memory (memaddr, readbuf, len, 0, NULL, ops);
+ }
+
/* Try GDB's internal data cache. */
region = lookup_mem_region (memaddr);
/* region->hi == 0 means there's no upper bound. */