diff options
Diffstat (limited to 'gdb/language.h')
-rw-r--r-- | gdb/language.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gdb/language.h b/gdb/language.h index ab5e5d2..a873699 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -30,6 +30,8 @@ struct value; struct objfile; struct expression; +struct ui_file; + /* enum exp_opcode; ANSI's `wisdom' didn't include forward enum decls. */ /* This used to be included to configure GDB for one or more specific @@ -203,6 +205,15 @@ struct language_defn int (*la_value_print) (struct value *, struct ui_file *, int, enum val_prettyprint); + /* PC is possibly an unknown languages trampoline. + If that PC falls in a trampoline belonging to this language, + return the address of the first pc in the real function, or 0 + if it isn't a language tramp for this language. */ + CORE_ADDR (*skip_trampoline) (CORE_ADDR pc); + + /* Return demangled language symbol, or NULL. */ + char *(*la_demangle) (const char *mangled, int options); + /* Base 2 (binary) formats. */ struct language_format_info la_binary_format; @@ -465,4 +476,12 @@ extern void add_language (const struct language_defn *); extern enum language get_frame_language (void); /* In stack.c */ +/* Check for a language-specific trampoline. */ + +extern CORE_ADDR skip_language_trampoline (CORE_ADDR pc); + +/* Return demangled language symbol, or NULL. */ +extern char *language_demangle (const struct language_defn *current_language, + const char *mangled, int options); + #endif /* defined (LANGUAGE_H) */ |