From 8faab1f43bae896cd4fab5aa3e1e4dbfa16e2396 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Wed, 16 May 2007 20:12:33 +0000 Subject: java-interp.h (breakpoint_at): Declare. * include/java-interp.h (breakpoint_at): Declare. * interpret.cc (breakpoint_at): New function. * gnu/classpath/jdwp/VMVirtualMachine.java (_event_list): New member. * gnu/classpath/jdwp/natVMVirtualMachine.cc (initialize): Initialize _event_list. (handle_single_step): If there is a breakpoint at the location at which we are stopping, do not send the notification. Instead add the event to a list of events that occur at this location. (jdwpBreakpointCB): If the event list is not empty, send whatever events are in it and the breakpoint event in a single notification. Mark parameter jni_env as MAYBE_UNUSED. * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerated. * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated. From-SVN: r124777 --- libjava/interpret.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libjava/interpret.cc') diff --git a/libjava/interpret.cc b/libjava/interpret.cc index b078676..18b4ae0 100644 --- a/libjava/interpret.cc +++ b/libjava/interpret.cc @@ -1580,6 +1580,23 @@ _Jv_InterpMethod::set_insn (jlong index, pc_t insn) return &code[index]; } +bool +_Jv_InterpMethod::breakpoint_at (jlong index) +{ + pc_t insn = get_insn (index); + if (insn != NULL) + { +#ifdef DIRECT_THREADED + return (insn->insn == breakpoint_insn->insn); +#else + pc_t code = reinterpret_cast (bytecode ()); + return (code[index] == breakpoint_insn); +#endif + } + + return false; +} + void * _Jv_JNIMethod::ncode (jclass klass) { -- cgit v1.1