diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 10 | ||||
-rw-r--r-- | libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class | bin | 1275 -> 1362 bytes | |||
-rw-r--r-- | libjava/gnu/gcj/jvmti/BreakpointManager.java | 10 | ||||
-rw-r--r-- | libjava/gnu/gcj/jvmti/natBreakpoint.cc | 3 |
4 files changed, 19 insertions, 4 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 6e916a7..b29a443 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +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 diff --git a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class Binary files differindex c0bf977..2f35c7f 100644 --- a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class +++ b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class diff --git a/libjava/gnu/gcj/jvmti/BreakpointManager.java b/libjava/gnu/gcj/jvmti/BreakpointManager.java index 205bf6d..5ef1b08 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 ab9de41..2a85a93 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 |