aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog10
-rw-r--r--libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.classbin1275 -> 1362 bytes
-rw-r--r--libjava/gnu/gcj/jvmti/BreakpointManager.java10
-rw-r--r--libjava/gnu/gcj/jvmti/natBreakpoint.cc3
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
index c0bf977..2f35c7f 100644
--- a/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class
+++ b/libjava/classpath/lib/gnu/gcj/jvmti/BreakpointManager.class
Binary files differ
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