*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / mem-break.c
index eebe7e251f1fe553e5a6bcc6c71db2fed9ffd7c8..7e55233e168263e0e2c2c0db508e8e50e07dda6e 100644 (file)
@@ -1,24 +1,24 @@
-/* Simulate breakpoints by patching locations in the target system.
-   Copyright (C) 1990 Free Software Foundation, Inc.
+/* Simulate breakpoints by patching locations in the target system, for GDB.
+   Copyright 1990, 1991 Free Software Foundation, Inc.
+   Contributed by Cygnus Support.  Written by John Gilmore.
 
 This file is part of GDB.
 
-GDB is free software; you can redistribute it and/or modify
+This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
 
-GDB is distributed in the hope that it will be useful,
+This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GDB; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+along with this program; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include "defs.h"
-#include "param.h"
 
 #ifdef BREAKPOINT
 /* This file is only useful if BREAKPOINT is set.  If not, we punt.  */
@@ -72,86 +72,8 @@ memory_remove_breakpoint (addr, contents_cache)
 }
 
 
-#if 0
-/* This should move back into breakpoint.c, sad to say.   Encapsulate
-    sizeof (BREAKPOINT) by export it as an int from mem-break.c.  */
+int memory_breakpoint_size = sizeof (break_insn);
 
-/* Like target_read_memory() but if breakpoints are inserted, return
-   the shadow contents instead of the breakpoints themselves.  */
-int
-read_memory_nobpt (memaddr, myaddr, len)
-     CORE_ADDR memaddr;
-     char *myaddr;
-     unsigned len;
-{
-  int status;
-  struct breakpoint *b;
-  ALL_BREAKPOINTS (b)
-    {
-      if (b->address == NULL || !b->inserted)
-       continue;
-      else if (b->address + sizeof (break_insn) <= memaddr)
-       /* The breakpoint is entirely before the chunk of memory
-          we are reading.  */
-       continue;
-      else if (b->address >= memaddr + len)
-       /* The breakpoint is entirely after the chunk of memory we
-          are reading.  */
-       continue;
-      else
-       {
-         /* Copy the breakpoint from the shadow contents, and recurse
-            for the things before and after.  */
-         
-         /* Addresses and length of the part of the breakpoint that
-            we need to copy.  */
-         CORE_ADDR membpt = b->address;
-         unsigned int bptlen = sizeof (break_insn);
-         /* Offset within shadow_contents.  */
-         int bptoffset = 0;
-         
-         if (membpt < memaddr)
-           {
-             /* Only copy the second part of the breakpoint.  */
-             bptlen -= memaddr - membpt;
-             bptoffset = memaddr - membpt;
-             membpt = memaddr;
-           }
-
-         if (membpt + bptlen > memaddr + len)
-           {
-             /* Only copy the first part of the breakpoint.  */
-             bptlen -= (membpt + bptlen) - (memaddr + len);
-           }
-
-         bcopy (b->shadow_contents + bptoffset,
-                myaddr + membpt - memaddr, bptlen);
-
-         if (membpt > memaddr)
-           {
-             /* Copy the section of memory before the breakpoint.  */
-             status = read_memory_nobpt (memaddr, myaddr, membpt - memaddr);
-             if (status != 0)
-               return status;
-           }
-
-         if (membpt + bptlen < memaddr + len)
-           {
-             /* Copy the section of memory after the breakpoint.  */
-             status = read_memory_nobpt
-               (membpt + bptlen,
-                myaddr + membpt + bptlen - memaddr,
-                memaddr + len - (membpt + bptlen));
-             if (status != 0)
-               return status;
-           }
-         return 0;
-       }
-    }
-  /* Nothing overlaps.  Just call read_memory_noerr.  */
-  return target_read_memory (memaddr, myaddr, len);
-}
-#endif /* 0 */
 
 #else  /* BREAKPOINT */
 
@@ -175,4 +97,6 @@ memory_remove_breakpoint (addr, contents_cache)
   return 0;    /* lint */
 }
 
+int memory_breakpoint_size = -1;
+
 #endif /* BREAKPOINT */
This page took 0.02427 seconds and 4 git commands to generate.