aboutsummaryrefslogtreecommitdiff
path: root/gdb/ada-lang.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r--gdb/ada-lang.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 98508c1..cbcceba 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -11894,7 +11894,12 @@ ada_exception_message_1 (void)
if (e_msg_len <= 0)
return NULL;
- return target_read_string (value_address (e_msg_val), INT_MAX);
+ gdb::unique_xmalloc_ptr<char> e_msg ((char *) xmalloc (e_msg_len + 1));
+ read_memory (value_address (e_msg_val), (gdb_byte *) e_msg.get (),
+ e_msg_len);
+ e_msg.get ()[e_msg_len] = '\0';
+
+ return e_msg;
}
/* Same as ada_exception_message_1, except that all exceptions are