aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.h
diff options
context:
space:
mode:
authorAdam Fedor <fedor@gnu.org>2003-03-26 03:39:44 +0000
committerAdam Fedor <fedor@gnu.org>2003-03-26 03:39:44 +0000
commitf636b87d5a32b8962b7dce92b2d289b6c314bad8 (patch)
tree1c43c3f4e734ed132d7896acf57a0ec0240ccbdd /gdb/language.h
parent05e6bb2fc936e70269f11767fd0112518cd4ef96 (diff)
downloadgdb-f636b87d5a32b8962b7dce92b2d289b6c314bad8.zip
gdb-f636b87d5a32b8962b7dce92b2d289b6c314bad8.tar.gz
gdb-f636b87d5a32b8962b7dce92b2d289b6c314bad8.tar.bz2
* Makefile.in (infrun.o): Add $(language_h)
* infrun.c (handle_inferior_event): Use skip_language_trampoline for language specific trampolines. * language.h (struct language_defn): Add skip_trampoline. (skip_language_trampoline): Declare. * language.c (unk_lang_trampoline, skip_language_trampoline): New functions. (unknown_language_defn, auto_language_defn, local_language_defn): Add ukn_lang_trampoline. * ada-lang.c (ada_language_defn): Add NULL for language specific skip_trampoline. * c-lang.c, f-lang.c, jv-lang.c, m2-lang.c, p-lang.c, scm-lang.c: Likewise. * objc-lang.c (objc_skip_trampoline): New function. (objc_language_defn): Add objc_skip_trampoline.
Diffstat (limited to 'gdb/language.h')
-rw-r--r--gdb/language.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/language.h b/gdb/language.h
index b786959..4b9f8ce 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -203,6 +203,12 @@ 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);
+
/* Base 2 (binary) formats. */
struct language_format_info la_binary_format;
@@ -465,4 +471,8 @@ 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);
+
#endif /* defined (LANGUAGE_H) */