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
This commit is contained in:
parent
34a7526e36
commit
d76473618c
4 changed files with 40 additions and 5 deletions
libjava/include
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue