aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2001-12-20 08:50:47 +0000
committerJim Blandy <jimb@codesourcery.com>2001-12-20 08:50:47 +0000
commitc5e243bbc4b8448f588b175364eed888a2f56a2a (patch)
treeb4ce0085602a6be115310a5f6c1ce58cd98ee461
parent2e7db62a77bdb3dc27338454cc8c170ebcb19092 (diff)
downloadgdb-c5e243bbc4b8448f588b175364eed888a2f56a2a.zip
gdb-c5e243bbc4b8448f588b175364eed888a2f56a2a.tar.gz
gdb-c5e243bbc4b8448f588b175364eed888a2f56a2a.tar.bz2
* s390-tdep.c (s390_readinstruction): Don't call
info->read_memory_func to read zero bytes. Some targets' xfer_memory functions can't cope with that.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/s390-tdep.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index deb527a..d4888d3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2001-12-19 Jim Blandy <jimb@redhat.com>
+ * s390-tdep.c (s390_readinstruction): Don't call
+ info->read_memory_func to read zero bytes. Some targets'
+ xfer_memory functions can't cope with that.
+
* gdbarch.sh (TARGET_CHAR_SIGNED): New macro.
* gdbarch.c, gdbarch.h: Regenerated.
* gdbtypes.c (build_gdbtypes): If TARGET_CHAR_SIGNED is zero,
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 02786ec..db7692b 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -132,8 +132,11 @@ s390_readinstruction (bfd_byte instr[], CORE_ADDR at,
if ((*info->read_memory_func) (at, &instr[0], 2, info))
return -1;
instrlen = s390_instrlen[instr[0] >> 6];
- if ((*info->read_memory_func) (at + 2, &instr[2], instrlen - 2, info))
- return -1;
+ if (instrlen > 2)
+ {
+ if ((*info->read_memory_func) (at + 2, &instr[2], instrlen - 2, info))
+ return -1;
+ }
return instrlen;
}