* inf-ptrace.c (inf_ptrace_xfer_partial): Use PIOD_WRITE_I instead

of PIOD_WRITE_D.
This commit is contained in:
Mark Kettenis 2005-11-21 09:11:44 +00:00
parent 5e1f64305e
commit b457b3dd73
2 changed files with 11 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2005-11-20 Mark Kettenis <kettenis@gnu.org>
* inf-ptrace.c (inf_ptrace_xfer_partial): Use PIOD_WRITE_I instead
of PIOD_WRITE_D.
2005-11-19 Jim Blandy <jimb@redhat.com>
* tracepoint.c (memrange_absolute): New enum constant.

View file

@ -462,8 +462,12 @@ inf_ptrace_xfer_partial (struct target_ops *ops, enum target_object object,
struct ptrace_io_desc piod;
/* NOTE: We assume that there are no distinct address spaces
for instruction and data. */
piod.piod_op = writebuf ? PIOD_WRITE_D : PIOD_READ_D;
for instruction and data. However, on OpenBSD 3.9 and
later, PIOD_WRITE_D doesn't allow changing memory that's
mapped read-only. Since most code segments will be
read-only, using PIOD_WRITE_D will prevent us from
inserting breakpoints, so we use PIOD_WRITE_I instead. */
piod.piod_op = writebuf ? PIOD_WRITE_I : PIOD_READ_D;
piod.piod_addr = writebuf ? (void *) writebuf : readbuf;
piod.piod_offs = (void *) (long) offset;
piod.piod_len = len;