aboutsummaryrefslogtreecommitdiff
path: root/libjava/stacktrace.cc
diff options
context:
space:
mode:
authorKyle Galloway <kgallowa@gcc.gnu.org>2006-08-15 20:40:10 +0000
committerKyle Galloway <kgallowa@gcc.gnu.org>2006-08-15 20:40:10 +0000
commit50ac25005f8b8c8bb91d74a6f1895bc5e11e8680 (patch)
treed7ad1399148e8d614e2fe328c387031a515b8fb2 /libjava/stacktrace.cc
parent4adb785d4481822edd5350f38b3fd2d3bcbfddca (diff)
downloadgcc-50ac25005f8b8c8bb91d74a6f1895bc5e11e8680.zip
gcc-50ac25005f8b8c8bb91d74a6f1895bc5e11e8680.tar.gz
gcc-50ac25005f8b8c8bb91d74a6f1895bc5e11e8680.tar.bz2
java-interp.h (_Jv_InterpMethod::run_debug): New method.
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. From-SVN: r116167
Diffstat (limited to 'libjava/stacktrace.cc')
-rw-r--r--libjava/stacktrace.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc
index fe2c2e0..3e6f04c 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;