diff options
author | kgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-15 20:40:10 +0000 |
---|---|---|
committer | kgallowa <kgallowa@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-08-15 20:40:10 +0000 |
commit | 6a0b579325680d39549f42b00410780c4c43c848 (patch) | |
tree | d7ad1399148e8d614e2fe328c387031a515b8fb2 /libjava/stacktrace.cc | |
parent | 0e9b75a86c4ac4218978ef271df570ffed9e4f92 (diff) | |
download | gcc-6a0b579325680d39549f42b00410780c4c43c848.tar.gz |
2006-08-15 Kyle Galloway <kgallowa@redhat.com>
* include/java-interp.h (_Jv_InterpMethod::run_debug): New method.
* interpret.cc: Added placeholder for debug variable type info to STORE*
macros.
(_Jv_InterpMethod::run_debug): New method.
(_Jv_InterpMethod::run_sync_object_debug): New method.
(_Jv_InterpMethod::run_sync_class_debug): New method.
(_Jv_InterpMethod::run_normal_debug): New method.
(_Jv_InterpMethod::run_class_debug): New method.
(_Jv_InterpMethod::ncode ()): Changed to select either debug or normal
versions of these functions.
* interpret-run.cc: New file, holds contents of old
_Jv_InterpMethod::run method.
* stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Changed to select
appropriate function for debug or normal mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116167 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/stacktrace.cc')
-rw-r--r-- | libjava/stacktrace.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc index fe2c2e058f9..3e6f04cd2c6 100644 --- a/libjava/stacktrace.cc +++ b/libjava/stacktrace.cc @@ -24,6 +24,7 @@ details. */ #include <java/security/AccessController.h> #include <java/util/ArrayList.h> #include <java/util/IdentityHashMap.h> +#include <gnu/classpath/jdwp/Jdwp.h> #include <gnu/java/lang/MainThread.h> #include <gnu/gcj/runtime/NameFinder.h> #include <gnu/gcj/runtime/StringBuffer.h> @@ -113,7 +114,13 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr) // correspondance between call frames in the interpreted stack and occurances // of _Jv_InterpMethod::run() on the native stack. #ifdef INTERPRETER - void *interp_run = (void *) &_Jv_InterpMethod::run; + void *interp_run = NULL; + + if (::gnu::classpath::jdwp::Jdwp::isDebugging) + interp_run = (void *) &_Jv_InterpMethod::run_debug; + else + interp_run = (void *) &_Jv_InterpMethod::run; + if (func_addr == UNWRAP_FUNCTION_DESCRIPTOR (interp_run)) { state->frames[pos].type = frame_interpreter; |