Install the new breakpoint into the bytecode.
(deleteBreakpoint): Remove the breakpoint from the bytecode.
* classpath/lib/gnu/gcj/jvmti/BreakpointManager.class:
Regenerate.
* gnu/gcj/jvmti/natBreakpoint.cc (initialize_native):
Don't install the breakpoint here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123997
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-04-20 Keith Seitz <keiths@redhat.com>
+
+ * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
+ Install the new breakpoint into the bytecode.
+ (deleteBreakpoint): Remove the breakpoint from the bytecode.
+ * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class:
+ Regenerate.
+ * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native):
+ Don't install the breakpoint here.
+
2007-04-19 Keith Seitz <keiths@redhat.com>
* interpret-run.cc [insn_breakpoint]: Save the original
// BreakpointManager.java - A convenience class for dealing with breakpoints
-/* Copyright (C) 2006 Free Software Foundation
+/* Copyright (C) 2006, 2007 Free Software Foundation
This file is part of libgcj.
{
Breakpoint bp = new Breakpoint (method, location);
Location loc = new Location (method, location);
+ bp.install ();
_instance._breakpoints.put (loc, bp);
return bp;
}
public static void deleteBreakpoint (long method, long location)
{
Location loc = new Location (method, location);
- _instance._breakpoints.remove (loc);
+ Breakpoint bp = (Breakpoint) _instance._breakpoints.get (loc);
+ if (bp != null)
+ {
+ bp.remove ();
+ _instance._breakpoints.remove (loc);
+ }
}
/**
// natBreakpoint.cc - C++ side of Breakpoint
-/* Copyright (C) 2006 Free Software Foundation
+/* Copyright (C) 2006, 2007 Free Software Foundation
This file is part of libgcj.
pc_t code = imeth->get_insn (location);
data = (RawDataManaged *) JvAllocBytes (sizeof (*code));
memcpy (data, code, sizeof (*code));
- install ();
}
void