aboutsummaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
authorKyle Galloway <kgallowa@redhat.com>2007-04-23 17:30:29 +0000
committerKyle Galloway <kgallowa@gcc.gnu.org>2007-04-23 17:30:29 +0000
commitd76473618c43c7a073359a300113fa5cf21fd999 (patch)
tree81048b7fa6e216d50f6149770c8a5fe429e8072d /libjava/include
parent34a7526e36dae962cea221b99fb4124b79895fce (diff)
downloadgcc-d76473618c43c7a073359a300113fa5cf21fd999.zip
gcc-d76473618c43c7a073359a300113fa5cf21fd999.tar.gz
gcc-d76473618c43c7a073359a300113fa5cf21fd999.tar.bz2
java-interp.h (_Jv_InterpFrame): Add pointer to the interpreter PC.
2007-04-23 Kyle Galloway <kgallowa@redhat.com> * include/java-interp.h (_Jv_InterpFrame): Add pointer to the interpreter PC. (<init>): Add a pointer to the interpreter PC as a parameter with default value NULL. (get_pc): New method. * interpret-run.cc: If debugging, pass a pointer to the PC when creating the stack frame. * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc to get the PC. From-SVN: r124076
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/java-interp.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index ee45faa..8da0584 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -422,6 +422,9 @@ public:
pc_t pc;
jclass proxyClass;
};
+
+ // Pointer to the actual pc value.
+ pc_t *pc_ptr;
//Debug info for local variables.
_Jv_word *locals;
@@ -430,7 +433,8 @@ public:
// Object pointer for this frame ("this")
jobject obj_ptr;
- _Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL)
+ _Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyCls = NULL,
+ pc_t *pc = NULL)
: _Jv_Frame (reinterpret_cast<_Jv_MethodBase *> (meth), thr,
frame_interpreter)
{
@@ -438,6 +442,7 @@ public:
proxyClass = proxyCls;
thr->interp_frame = (gnu::gcj::RawData *) this;
obj_ptr = NULL;
+ pc_ptr = pc;
}
~_Jv_InterpFrame ()
@@ -448,7 +453,20 @@ public:
jobject get_this_ptr ()
{
return obj_ptr;
- }
+ }
+
+ pc_t get_pc ()
+ {
+ pc_t pc;
+
+ // If the PC_PTR is NULL, we are not debugging.
+ if (pc_ptr == NULL)
+ pc = 0;
+ else
+ pc = *pc_ptr;
+
+ return pc;
+ }
};
// A native frame in the call stack really just a placeholder