diff options
author | John Gilmore <gnu@cygnus> | 1991-10-25 09:03:36 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1991-10-25 09:03:36 +0000 |
commit | 9cb602e111d316e5c1f857fbd2f33f5dfbc275b3 (patch) | |
tree | 1dd6685b96e2b7b3d18aa20ae24ae246f5a34699 /gdb | |
parent | db138ce2a7d36a3c1854376c8eba0bd1add0b7dd (diff) | |
download | gdb-9cb602e111d316e5c1f857fbd2f33f5dfbc275b3.zip gdb-9cb602e111d316e5c1f857fbd2f33f5dfbc275b3.tar.gz gdb-9cb602e111d316e5c1f857fbd2f33f5dfbc275b3.tar.bz2 |
(value_fetch_lazy): Avoid 0-length fetches.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/valops.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f7ad1dd..f999d4e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +Fri Oct 25 02:02:13 1991 John Gilmore (gnu at cygnus.com) + + * valops.c (value_fetch_lazy): Avoid 0-length fetches. + Thu Oct 24 23:06:40 1991 Fred Fish (fnf at cygnus.com) * dwarfread.c: Add casts to remove compiler warnings. diff --git a/gdb/valops.c b/gdb/valops.c index 614317f..07c96af 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -163,6 +163,9 @@ value_at_lazy (type, addr) data from the user's process, and clears the lazy flag to indicate that the data in the buffer is valid. + If the value is zero-length, we avoid calling read_memory, which would + abort. We mark the value as fetched anyway -- all 0 bytes of it. + This function returns a value because it is used in the VALUE_CONTENTS macro as part of an expression, where a void would not work. The value is ignored. */ @@ -173,8 +176,9 @@ value_fetch_lazy (val) { CORE_ADDR addr = VALUE_ADDRESS (val) + VALUE_OFFSET (val); - read_memory (addr, VALUE_CONTENTS_RAW (val), - TYPE_LENGTH (VALUE_TYPE (val))); + if (TYPE_LENGTH (VALUE_TYPE (val))) + read_memory (addr, VALUE_CONTENTS_RAW (val), + TYPE_LENGTH (VALUE_TYPE (val))); VALUE_LAZY (val) = 0; return 0; } |