aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
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/infrun.c
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/infrun.c')
-rw-r--r--gdb/infrun.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 03a8e57..6da3394 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -43,6 +43,7 @@
#include "regcache.h"
#include "value.h"
#include "observer.h"
+#include "language.h"
/* Prototypes for local functions */
@@ -2386,7 +2387,9 @@ process_event_stop_test:
function. That's what tells us (a) whether we want to step
into it at all, and (b) what prologue we want to run to
the end of, if we do step into it. */
- real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
+ real_stop_pc = skip_language_trampoline (stop_pc);
+ if (real_stop_pc == 0)
+ real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
if (real_stop_pc != 0)
ecs->stop_func_start = real_stop_pc;