* target.c (memory_xfer_partial): Accesses to unmapped overlay
authorUlrich Weigand <uweigand@de.ibm.com>
Tue, 24 Jul 2007 12:49:24 +0000 (12:49 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Tue, 24 Jul 2007 12:49:24 +0000 (12:49 +0000)
sections should always go to the executable file.

gdb/ChangeLog
gdb/target.c

index 60f4e9af76739ce258d5f805de850cc61c87a8cb..5165e0b091a36c2e700eee28020f112b3a8d345f 100644 (file)
@@ -1,3 +1,8 @@
+2007-07-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * target.c (memory_xfer_partial): Accesses to unmapped overlay
+       sections should always go to the executable file.
+
 2004-07-20  Chris Dearman  <chris@mips.com>
 
        * mips-tdep.c (heuristic_proc_start): Add more MIPS16 function
index 2bb50e6f6b8ed196e1476870ff9e3b08aeb67589..92a4d6ac2c98c51f335ca4d8e49e861c08470f04 100644 (file)
@@ -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.  */