/* Ada language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2013 Free Software Foundation, Inc.
+ Copyright (C) 1992-2016 Free Software Foundation, Inc.
This file is part of GDB.
struct frame_info;
struct inferior;
struct type_print_options;
+struct parser_state;
#include "value.h"
#include "gdbtypes.h"
#include "breakpoint.h"
+#include "vec.h"
/* Names of specific files known to be part of the runtime
system and that might consider (confusing) debugging information.
Each name (a basic regular expression string) is followed by a
comma. FIXME: Should be part of a configuration file. */
-#if defined(__alpha__) && defined(__osf__)
-#define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
- "^[agis]-.*\\.ad[bs]$", \
- "/usr/shlib/libpthread\\.so",
-#elif defined (__linux__)
+#if defined (__linux__)
#define ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS \
"^[agis]-.*\\.ad[bs]$", \
"/lib.*/libpthread\\.so[.0-9]*$", "/lib.*/libpthread\\.a$", \
/* Defined in ada-lang.c */
extern const struct ada_opname_map ada_opname_table[];
-/* A tuple representing one instance of a symbol-lookup operation. */
-
-struct ada_symbol_info
-{
- /* The symbol that was found. */
- struct symbol *sym;
-
- /* The block where the symbol was found. */
- const struct block *block;
-};
-
/* Denotes a type of renaming symbol (see ada_parse_renaming). */
enum ada_renaming_category
{
least M objects, updating V and S as necessary. */
#define GROW_VECT(v, s, m) \
- if ((s) < (m)) (v) = grow_vect (v, &(s), m, sizeof *(v));
+ if ((s) < (m)) (v) = (char *) grow_vect (v, &(s), m, sizeof *(v));
extern void *grow_vect (void *, size_t *, size_t, int);
+extern void ada_ensure_varsize_limit (const struct type *type);
+
extern int ada_get_field_index (const struct type *type,
const char *field_name,
int maybe_missing);
-extern int ada_parse (void); /* Defined in ada-exp.y */
+extern int ada_parse (struct parser_state *); /* Defined in ada-exp.y */
extern void ada_error (char *); /* Defined in ada-exp.y */
extern enum language ada_update_initial_language (enum language);
-extern void clear_ada_sym_cache (void);
-
extern int ada_lookup_symbol_list (const char *, const struct block *,
- domain_enum, struct ada_symbol_info**);
+ domain_enum, struct block_symbol**);
extern char *ada_fold_name (const char *);
-extern struct symbol *ada_lookup_symbol (const char *, const struct block *,
- domain_enum, int *);
+extern struct block_symbol ada_lookup_symbol (const char *,
+ const struct block *,
+ domain_enum, int *);
extern void ada_lookup_encoded_symbol
- (const char *name, const struct block *block, domain_enum namespace,
- struct ada_symbol_info *symbol_info);
+ (const char *name, const struct block *block, domain_enum domain,
+ struct block_symbol *symbol_info);
extern struct bound_minimal_symbol ada_lookup_simple_minsym (const char *);
extern void ada_fill_in_ada_prototype (struct symbol *);
-extern int user_select_syms (struct ada_symbol_info *, int, int);
+extern int user_select_syms (struct block_symbol *, int, int);
extern int get_selections (int *, int, int, int, char *);
char *excep_string, char *cond_string, int tempflag, int disabled,
int from_tty);
+/* Some information about a given Ada exception. */
+
+typedef struct ada_exc_info
+{
+ /* The name of the exception. */
+ const char *name;
+
+ /* The address of the symbol corresponding to that exception. */
+ CORE_ADDR addr;
+} ada_exc_info;
+
+DEF_VEC_O(ada_exc_info);
+
+extern VEC(ada_exc_info) *ada_exceptions_list (const char *regexp);
+
/* Tasking-related: ada-tasks.c */
extern int valid_task_id (int);