Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java')
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java43
1 files changed, 36 insertions, 7 deletions
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java
index 0c79dc3945a..22dd8d73e79 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/ui/breakpoints/AbstractToggleBreakpointAdapter.java
@@ -151,25 +151,54 @@ abstract public class AbstractToggleBreakpointAdapter
}
@Override
- public boolean canCreateBreakpointsInteractive(IWorkbenchPart part, ISelection selection) {
- return canToggleBreakpoints( part, selection );
+ public boolean canCreateLineBreakpointsInteractive(IWorkbenchPart part, ISelection selection) {
+ return canToggleLineBreakpoints( part, selection );
}
@Override
- public void createBreakpointsInteractive(IWorkbenchPart part, ISelection selection) throws CoreException {
- updateBreakpoints(false, true, part, selection);
+ public void createLineBreakpointsInteractive(IWorkbenchPart part, ISelection selection) throws CoreException {
+ updateLineBreakpoints(false, true, part, selection);
}
@Override
- public boolean canCreateWatchpoingsInteractive(IWorkbenchPart part, ISelection selection) {
+ public boolean canCreateWatchpointsInteractive(IWorkbenchPart part, ISelection selection) {
+ // Gather all input from user if needed.
return true;
}
@Override
- public void createWatchpoingsInteractive(IWorkbenchPart part, ISelection selection) throws CoreException {
- createWatchpoint(true, part, null, ResourcesPlugin.getWorkspace().getRoot(), -1, -1, -1, "");
+ public void createWatchpointsInteractive(IWorkbenchPart part, ISelection selection) throws CoreException {
+ ICElement element = getCElementFromSelection( part, selection );
+ if (element instanceof IVariable) {
+ updateVariableWatchpoint(false, true, part, (IVariable)element);
+ } else {
+ String text = ""; //$NON-NLS-1$
+ if (selection instanceof ITextSelection) {
+ text = ((ITextSelection)selection).getText();
+ }
+ createWatchpoint(true, part, null, ResourcesPlugin.getWorkspace().getRoot(), -1, -1, -1, text);
+ }
}
+ @Override
+ public boolean canCreateFunctionBreakpointInteractive(IWorkbenchPart part, ISelection selection) {
+ return true;
+ }
+
+ @Override
+ public void createFunctionBreakpointInteractive(IWorkbenchPart part, ISelection selection) throws CoreException {
+ ICElement element = getCElementFromSelection( part, selection );
+ if ( element instanceof IFunction || element instanceof IMethod ) {
+ updateMethodBreakpoints(false, true, part, (IDeclaration)element);
+ } else {
+ String text = ""; //$NON-NLS-1$
+ if (selection instanceof ITextSelection) {
+ text = ((ITextSelection)selection).getText();
+ }
+ createFunctionBreakpoint(true, part, null, ResourcesPlugin.getWorkspace().getRoot(), text, -1, -1, -1);
+ }
+ }
+
/**
* Updates the breakpoint for given part and selection.
* Depending on the flags and on whether a breakpoint exists, this method

Back to the top