diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 6e916a71b63..b29a44312e2 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +2007-04-20 Keith Seitz + + * 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 * interpret-run.cc [insn_breakpoint]: Save the original diff --git a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class index c0bf97744a7..2f35c7fbee4 100644 Binary files a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class and b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class differ diff --git a/libjava/gnu/gcj/jvmti/BreakpointManager.java b/libjava/gnu/gcj/jvmti/BreakpointManager.java index 205bf6d8a5b..5ef1b08d4df 100644 --- a/libjava/gnu/gcj/jvmti/BreakpointManager.java +++ b/libjava/gnu/gcj/jvmti/BreakpointManager.java @@ -1,6 +1,6 @@ // 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. @@ -45,6 +45,7 @@ public class BreakpointManager { Breakpoint bp = new Breakpoint (method, location); Location loc = new Location (method, location); + bp.install (); _instance._breakpoints.put (loc, bp); return bp; } @@ -58,7 +59,12 @@ public class BreakpointManager 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); + } } /** diff --git a/libjava/gnu/gcj/jvmti/natBreakpoint.cc b/libjava/gnu/gcj/jvmti/natBreakpoint.cc index ab9de417bb8..2a85a939b92 100644 --- a/libjava/gnu/gcj/jvmti/natBreakpoint.cc +++ b/libjava/gnu/gcj/jvmti/natBreakpoint.cc @@ -1,6 +1,6 @@ // 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. @@ -39,7 +39,6 @@ gnu::gcj::jvmti::Breakpoint::initialize_native () pc_t code = imeth->get_insn (location); data = (RawDataManaged *) JvAllocBytes (sizeof (*code)); memcpy (data, code, sizeof (*code)); - install (); } void