binutils-gdb/gdb/valprint.h
Joel Brobecker e79af960e2 2005-10-03 Joel Brobecker <brobecker@adacore.com>
* language.h (language_defn): New field la_print_array_index.
        (LA_PRINT_ARRAY_INDEX): New macro.
        (default_print_array_index): Add declaration.
        * language.c (default_print_array_index): new function.
        (unknown_language): Add value for new field.
        (auto_language): Likewise.
        (local_language): Likewise.
        * ada-lang.c (ada_print_array_index): New function.
        (ada_language_defn): Add value for new field.
        * c-lang.c (c_language_defn): Likewise.
        (cpluc_language_defn): Likewise.
        (asm_language_defn): Likewise.
        (minimal_language_defn): Likewise.
        * f-lang.c (f_language_defn): Likewise.
        * jv-lang.c (java_language_defn): Likewise.
        * m2-lang.c (m2_language_defn): Likewise.
        * objc-lang.c (objc_language_defn): Likewise.
        * p-lang.c (pascal_language_defn): Likewise.
        * scm-lang.c (scm_language_defn): Likewise.
        * valprint.h (print_array_indexes_p): Add declaration.
        (get_array_low_bound): Add declaration.
        (maybe_print_array_index): Add declaration.
        * valprint.c (print_array_indexes): New static variable.
        (show_print_array_indexes): New function.
        (print_array_indexes_p): New function.
        (get_array_low_bound): New function.
        (maybe_print_array_index): New function.
        (val_print_array_elements): Print the index of each element if
        requested by the user.
        (_initialize_valprint): Add new array-indexes "set/show print" command.
        * ada-valprint.c (print_optional_low_bound): Replace extracted code
        by call to ada_get_array_low_bound_and_type(). Stop printing the low
        bound if indexes will be printed for all elements of the array.
        (val_print_packed_array_elements): Print the index of each element
        of the array if necessary.
2005-10-03 21:21:20 +00:00

84 lines
3.2 KiB
C

/* Declarations for value printing routines for GDB, the GNU debugger.
Copyright 1986, 1988, 1989, 1991, 1992, 1993, 1994, 2000, 2005 Free
Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef VALPRINT_H
#define VALPRINT_H
extern int prettyprint_arrays; /* Controls pretty printing of arrays. */
extern int prettyprint_structs; /* Controls pretty printing of structures */
extern int prettyprint_arrays; /* Controls pretty printing of arrays. */
extern int vtblprint; /* Controls printing of vtbl's */
extern int unionprint; /* Controls printing of nested unions. */
extern int addressprint; /* Controls pretty printing of addresses. */
extern int objectprint; /* Controls looking up an object's derived type
using what we find in its vtables. */
extern unsigned int print_max; /* Max # of chars for strings/vectors */
/* Flag to low-level print routines that this value is being printed
in an epoch window. We'd like to pass this as a parameter, but
every routine would need to take it. Perhaps we can encapsulate
this in the I/O stream once we have GNU stdio. */
extern int inspect_it;
/* Print repeat counts if there are more than this many repetitions of an
element in an array. Referenced by the low level language dependent
print routines. */
extern unsigned int repeat_count_threshold;
extern int output_format;
extern int stop_print_at_null; /* Stop printing at null char? */
extern int print_array_indexes_p (void);
extern int get_array_low_bound (struct type *type, long *low_bound);
extern void maybe_print_array_index (struct type *index_type, LONGEST index,
struct ui_file *stream, int format,
enum val_prettyprint pretty);
extern void val_print_array_elements (struct type *, const gdb_byte *,
CORE_ADDR, struct ui_file *, int,
int, int, enum val_prettyprint,
unsigned int);
extern void val_print_type_code_int (struct type *, const gdb_byte *,
struct ui_file *);
extern void print_binary_chars (struct ui_file *, const gdb_byte *,
unsigned int);
extern void print_octal_chars (struct ui_file *, const gdb_byte *,
unsigned int);
extern void print_decimal_chars (struct ui_file *, const gdb_byte *,
unsigned int);
extern void print_hex_chars (struct ui_file *, const gdb_byte *,
unsigned int);
extern void print_char_chars (struct ui_file *, const gdb_byte *,
unsigned int);
#endif