show breakpoint sign if stopped on method/field breakpoint
authorEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 26 Feb 2015 13:22:05 +0000 (16:22 +0300)
committerEgor.Ushakov <egor.ushakov@jetbrains.com>
Thu, 26 Feb 2015 13:23:48 +0000 (16:23 +0300)
java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaFieldBreakpointType.java
java/debugger/impl/src/com/intellij/debugger/ui/breakpoints/JavaMethodBreakpointType.java
platform/xdebugger-api/src/com/intellij/xdebugger/breakpoints/XLineBreakpointType.java
platform/xdebugger-impl/src/com/intellij/xdebugger/impl/XDebugSessionImpl.java

index f34898b7f615f964b4bb2e2c192a2c3f78e381e5..f534e8883a63b692f6f2b67a589a3aa6214a6042 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -181,4 +181,9 @@ public class JavaFieldBreakpointType extends JavaLineBreakpointTypeBase<JavaFiel
   public Breakpoint createJavaBreakpoint(Project project, XBreakpoint breakpoint) {
     return new FieldBreakpoint(project, breakpoint);
   }
+
+  @Override
+  public boolean canBeHitInOtherPlaces() {
+    return true;
+  }
 }
index 4d7d51295fd6c435e3d9bb26ba4ca5ce6030900d..a5358b25c6240baac46b78b0ecc5042d723be977 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -127,4 +127,9 @@ public class JavaMethodBreakpointType extends JavaLineBreakpointTypeBase<JavaMet
   public Breakpoint createJavaBreakpoint(Project project, XBreakpoint breakpoint) {
     return new MethodBreakpoint(project, breakpoint);
   }
+
+  @Override
+  public boolean canBeHitInOtherPlaces() {
+    return true;
+  }
 }
index edcab75e8517a1a26a5abea15363adfa85cd50e4..d9666efd192742ab41d17637b19c33055f708e37 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -108,4 +108,12 @@ public abstract class XLineBreakpointType<P extends XBreakpointProperties> exten
   public int getPriority() {
     return 0;
   }
+
+  /**
+   * Return true if this breakpoint could be hit on lines other than the one specified,
+   * an example is method breakpoint in java - it could be hit on any method overriding the one specified
+   */
+  public boolean canBeHitInOtherPlaces() {
+    return false;
+  }
 }
index b8abd9764511474f53991bff8fcd41851a7d6f42..520a4e3952673e526f18014e8698ba1d65052150 100644 (file)
@@ -713,7 +713,8 @@ public class XDebugSessionImpl implements XDebugSession {
       }
     }
 
-    myActiveNonLineBreakpoint = !(breakpoint instanceof XLineBreakpoint<?>) ? breakpoint : null;
+    myActiveNonLineBreakpoint =
+      (!(breakpoint instanceof XLineBreakpoint) || ((XLineBreakpoint)breakpoint).getType().canBeHitInOtherPlaces()) ? breakpoint : null;
     positionReached(suspendContext);
 
     UIUtil.invokeLaterIfNeeded(new Runnable() {