From 9cb602e111d316e5c1f857fbd2f33f5dfbc275b3 Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Fri, 25 Oct 1991 09:03:36 +0000 Subject: (value_fetch_lazy): Avoid 0-length fetches. --- gdb/valops.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gdb/valops.c') 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; } -- cgit v1.1