/* Support for printing Ada values for GDB, the GNU debugger.
- Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Copyright (C) 1986-2015 Free Software Foundation, Inc.
This file is part of GDB.
#include "ada-lang.h"
#include "c-lang.h"
#include "infcall.h"
-#include "exceptions.h"
#include "objfiles.h"
static int print_field_values (struct type *, const gdb_byte *,
if (ada_is_tagged_type (value_type (deref_val), 1))
deref_val = ada_tag_value_at_base_address (deref_val);
+ /* Make sure that the object does not have an unreasonable size
+ before trying to print it. This can happen for instance with
+ references to dynamic objects whose contents is uninitialized
+ (Eg: an array whose bounds are not set yet). */
+ ada_ensure_varsize_limit (value_type (deref_val));
+
val_print (value_type (deref_val),
value_contents_for_printing (deref_val),
value_embedded_offset (deref_val),
{
struct value *val = ada_to_fixed_value (val0);
CORE_ADDR address = value_address (val);
- struct type *type = ada_check_typedef (value_type (val));
+ struct type *type = ada_check_typedef (value_enclosing_type (val));
struct value_print_options opts;
/* If it is a pointer, indicate what it points to. */