[PATCH v2] gdb: Fixed type in value.c
Lukas Durfina
ldurfina@tachyum.com
Wed Aug 5 10:51:36 GMT 2020
Type's length is ULONGEST. It fixes an issue with fortran arrays.
Instead of crash with the message:
internal-error: virtual memory exhausted: can't allocate 240518168752 bytes.
There is correct error message in backtrace:
str=<error reading variable: value requires 240518168752 bytes, which is more than max-value-size>
gdb/ChangeLog:
* value.c (check_type_length_before_alloc): Fixed type.
---
gdb/ChangeLog | 4 ++++
gdb/value.c | 10 +++++-----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2cd89b73b7d..0855255e536 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2020-08-05 Lukas Durfina <ldurfina@tachyum.com>
+
+ * value.c (check_type_length_before_alloc): Fixed type.
+
2020-08-04 Simon Marchi <simon.marchi@efficios.com>
* frame.h (frame_id_p): Return bool.
diff --git a/gdb/value.c b/gdb/value.c
index aac9baaaf56..a6e21309f85 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -997,16 +997,16 @@ show_max_value_size (struct ui_file *file, int from_tty,
static void
check_type_length_before_alloc (const struct type *type)
{
- unsigned int length = TYPE_LENGTH (type);
+ ULONGEST length = TYPE_LENGTH (type);
if (max_value_size > -1 && length > max_value_size)
{
if (type->name () != NULL)
- error (_("value of type `%s' requires %u bytes, which is more "
- "than max-value-size"), type->name (), length);
+ error (_("value of type `%s' requires %s bytes, which is more "
+ "than max-value-size"), type->name (), pulongest (length));
else
- error (_("value requires %u bytes, which is more than "
- "max-value-size"), length);
+ error (_("value requires %s bytes, which is more than "
+ "max-value-size"), pulongest (length));
}
}
--
2.17.1
More information about the Gdb-patches
mailing list