diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/BreakpointsMessages.properties b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/BreakpointsMessages.properties index f8da8b56962..dc6cf5c3f5c 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/BreakpointsMessages.properties +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/BreakpointsMessages.properties @@ -27,6 +27,7 @@ CBreakpointPropertyPage.sourceHandle_label=File: CBreakpointPropertyPage.breakpointType_line_label=C/C++ Line Breakpoint CBreakpointPropertyPage.lineNumber_errorMessage=Enter a line number greater than 0 CBreakpointPropertyPage.lineNumber_label=Line number: +CBreakpointPropertyPage.breakpoint_already_exists_errorMessage=Breakpoint exists at this location CBreakpointPropertyPage.breakpointType_event_label=C/C++ Event Breakpoint CBreakpointPropertyPage.project_label=Project: CBreakpointPropertyPage.breakpointType_watchpoint_label=C/C++ Watchpoint diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/CBreakpointPropertyPage.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/CBreakpointPropertyPage.java index 245a165ed06..f943927ac47 100644 --- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/CBreakpointPropertyPage.java +++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/breakpoints/CBreakpointPropertyPage.java @@ -45,6 +45,7 @@ import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.core.model.IDebugModelProvider; import org.eclipse.debug.core.model.ILineBreakpoint; @@ -57,6 +58,7 @@ import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.window.Window; @@ -535,10 +537,18 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement private Text fIgnoreCountTextControl; + private BreakpointFileNameFieldEditor fFileEditor; + private BreakpointIntegerFieldEditor fLineEditor; private BreakpointIntegerFieldEditor fIgnoreCount; - + private IAdaptable fElement; + /** + * Indicates if the page currently aims to create + * a breakpoint that already exits. + */ + private boolean fDuplicateBreakpoint; + /** * The preference store used to interface between the breakpoint and the * breakpoint preference page. This preference store is initialized only @@ -560,11 +570,6 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement // fCBreakpointPreferenceStore = new CBreakpointPreferenceStore(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() - */ @Override protected void createFieldEditors() { ICBreakpoint breakpoint = getBreakpoint(); @@ -681,11 +686,11 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement boolean isFilenameEditable = fileName != null && fileName.isEmpty(); if (isNewBreakpoint && isFilenameEditable) { - BreakpointFileNameFieldEditor fileNameEditor = new BreakpointFileNameFieldEditor( + fFileEditor = new BreakpointFileNameFieldEditor( ICLineBreakpoint.SOURCE_HANDLE, title, parent); - fileNameEditor.setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.fileName_errorMessage")); //$NON-NLS-1$ - fileNameEditor.setEmptyStringAllowed(false); - addField(fileNameEditor); + fFileEditor.setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.fileName_errorMessage")); //$NON-NLS-1$ + fFileEditor.setEmptyStringAllowed(false); + addField(fFileEditor); } else { if (fileName != null) { addField(createLabelEditor(parent, title, fileName)); @@ -704,10 +709,10 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement protected void createLineNumberEditor( Composite parent ) { String title = BreakpointsMessages.getString( "CBreakpointPropertyPage.lineNumber_label" ); //$NON-NLS-1$ - BreakpointIntegerFieldEditor labelFieldEditor =new BreakpointIntegerFieldEditor( IMarker.LINE_NUMBER ,title, parent); - labelFieldEditor.setValidRange( 1, Integer.MAX_VALUE ); - labelFieldEditor.setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.lineNumber_errorMessage")); //$NON-NLS-1$ - addField( labelFieldEditor ); + fLineEditor = new BreakpointIntegerFieldEditor(IMarker.LINE_NUMBER ,title, parent); + fLineEditor.setValidRange(1, Integer.MAX_VALUE); + fLineEditor.setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.lineNumber_errorMessage")); //$NON-NLS-1$ + addField(fLineEditor); } protected void createWatchExpressionEditor( Composite parent ) { @@ -807,6 +812,79 @@ public class CBreakpointPropertyPage extends FieldEditorPreferencePage implement return new LabelFieldEditor( parent, title, value ); } + @Override + public boolean isValid() { + // Don't allow to create a duplicate breakpoint + return super.isValid() && !fDuplicateBreakpoint; + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + + ICBreakpoint currentBp = getBreakpoint(); + if (!(currentBp instanceof ICFunctionBreakpoint) && + !(currentBp instanceof ICAddressBreakpoint)) { + // Check for duplication of line breakpoints + if (event.getProperty().equals(FieldEditor.VALUE)) { + if (super.isValid()) { + // For every change, if all the fields are valid + // we then check if we are dealing with a duplicate + // breakpoint. + boolean oldValue = fDuplicateBreakpoint; + fDuplicateBreakpoint = isDuplicateBreakpoint(); + if (oldValue != fDuplicateBreakpoint) { + if (fDuplicateBreakpoint) { + setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.breakpoint_already_exists_errorMessage")); //$NON-NLS-1$ + } else { + setErrorMessage(null); + } + // update container state + if (getContainer() != null) { + getContainer().updateButtons(); + } + // update page state + updateApplyButton(); + } + } + } + } + } + + private boolean isDuplicateBreakpoint() { + String source = null; + if (fFileEditor != null) { + source = fFileEditor.getStringValue(); + } else { + // If the source file is not editable, we should fetch + // it from the preference store + source = getPreferenceStore().getString(ICBreakpoint.SOURCE_HANDLE); + } + + int line = fLineEditor.getIntValue(); + + // Look for any breakpoint that has the same source file and line number as what + // is currently being inputed. Careful not to compare with the current breakpoint + // in the case of modifying the breakpoint properties of an existing breakpoint; in + // that case we of course have this particular bp at this file and line. + ICBreakpoint currentBp = getBreakpoint(); + IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(); + for (IBreakpoint bp : breakpoints) { + if (!bp.equals(currentBp) && bp instanceof ICBreakpoint) { + IMarker marker = bp.getMarker(); + if (marker != null) { + String markerFile = marker.getAttribute(ICBreakpoint.SOURCE_HANDLE, ""); //$NON-NLS-1$ + int markerLine = marker.getAttribute(IMarker.LINE_NUMBER, -1); + if (source.equals(markerFile) && line == markerLine) { + // Woops, we already have another breakpoint at this file:line + return true; + } + } + } + } + return false; + } + protected ICBreakpoint getBreakpoint() { IAdaptable element = getElement(); if (element instanceof ICBreakpoint) { diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBDynamicPrintfPropertyPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBDynamicPrintfPropertyPage.java index 31688226d21..9d5e2b894ce 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBDynamicPrintfPropertyPage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBDynamicPrintfPropertyPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2014 Ericsson and others. + * Copyright (c) 2014, 2015 Ericsson and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -16,6 +16,7 @@ import org.eclipse.cdt.debug.core.model.ICBreakpoint; import org.eclipse.cdt.debug.core.model.ICDynamicPrintf; import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint; import org.eclipse.cdt.debug.core.model.ICLineBreakpoint; +import org.eclipse.cdt.debug.internal.ui.breakpoints.BreakpointsMessages; import org.eclipse.cdt.debug.internal.ui.breakpoints.CBreakpointContext; import org.eclipse.cdt.debug.internal.ui.breakpoints.CBreakpointPreferenceStore; import org.eclipse.cdt.debug.ui.breakpoints.ICBreakpointContext; @@ -25,6 +26,7 @@ import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.core.model.IDebugModelProvider; import org.eclipse.debug.ui.DebugUITools; @@ -35,6 +37,7 @@ import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Composite; @@ -177,8 +180,16 @@ public class GDBDynamicPrintfPropertyPage extends FieldEditorPreferencePage impl private DynamicPrintfStringFieldEditor fCondition; private Text fIgnoreCountTextControl; + private DynamicPrintfIntegerFieldEditor fLineEditor; private DynamicPrintfIntegerFieldEditor fIgnoreCount; + /** + * Indicates if the page currently aims to create + * a breakpoint that already exits. + */ + private boolean fDuplicateBreakpoint; + + private DynamicPrintfStringFieldEditor fPrintString; private IAdaptable fElement; @@ -197,11 +208,6 @@ public class GDBDynamicPrintfPropertyPage extends FieldEditorPreferencePage impl noDefaultAndApplyButton(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() - */ @Override protected void createFieldEditors() { ICDynamicPrintf dprintf = getDprintf(); @@ -269,9 +275,10 @@ public class GDBDynamicPrintfPropertyPage extends FieldEditorPreferencePage impl } protected void createLineNumberEditor(Composite parent) { String title = Messages.PropertyPage_LineNumber; - DynamicPrintfIntegerFieldEditor labelFieldEditor = new DynamicPrintfIntegerFieldEditor(IMarker.LINE_NUMBER, title, parent); - labelFieldEditor.setValidRange(1, Integer.MAX_VALUE); - addField(labelFieldEditor); + fLineEditor = new DynamicPrintfIntegerFieldEditor(IMarker.LINE_NUMBER, title, parent); + fLineEditor.setValidRange(1, Integer.MAX_VALUE); + fLineEditor.setErrorMessage(Messages.PropertyPage_lineNumber_errorMessage); + addField(fLineEditor); } protected void createEnabledField(Composite parent) { @@ -312,6 +319,71 @@ public class GDBDynamicPrintfPropertyPage extends FieldEditorPreferencePage impl addField(fPrintString); } + @Override + public boolean isValid() { + // Don't allow to create a duplicate breakpoint + return super.isValid() && !fDuplicateBreakpoint; + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + + ICBreakpoint currentBp = getDprintf(); + if (!(currentBp instanceof ICFunctionBreakpoint) && + !(currentBp instanceof ICAddressBreakpoint)) { + // Check for duplication of line dprintf + if (event.getProperty().equals(FieldEditor.VALUE)) { + if (super.isValid()) { + // For every change, if all the fields are valid + // we then check if we are dealing with a duplicate + // breakpoint. + boolean oldValue = fDuplicateBreakpoint; + fDuplicateBreakpoint = isDuplicateBreakpoint(); + if (oldValue != fDuplicateBreakpoint) { + if (fDuplicateBreakpoint) { + setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.breakpoint_already_exists_errorMessage")); //$NON-NLS-1$ + } else { + setErrorMessage(null); + } + // update container state + if (getContainer() != null) { + getContainer().updateButtons(); + } + // update page state + updateApplyButton(); + } + } + } + } + } + + private boolean isDuplicateBreakpoint() { + String source = getPreferenceStore().getString(ICBreakpoint.SOURCE_HANDLE); + int line = fLineEditor.getIntValue(); + + // Look for any breakpoint (base bp class) that has the same source file and line number as what + // is currently being inputed. Careful not to compare with the current dprintf + // in the case of modifying the properties of an existing dprintf; in + // that case we of course have this particular dprintf at this file and line. + ICBreakpoint currentBp = getDprintf(); + IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(); + for (IBreakpoint bp : breakpoints) { + if (!bp.equals(currentBp) && bp instanceof ICBreakpoint) { + IMarker marker = bp.getMarker(); + if (marker != null) { + String markerFile = marker.getAttribute(ICBreakpoint.SOURCE_HANDLE, ""); //$NON-NLS-1$ + int markerLine = marker.getAttribute(IMarker.LINE_NUMBER, -1); + if (source.equals(markerFile) && line == markerLine) { + // Woops, we already have another breakpoint at this file:line + return true; + } + } + } + } + return false; + } + protected FieldEditor createLabelEditor(Composite parent, String title, String value) { return new LabelFieldEditor(parent, title, value); } diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java index 0b0cffe11ae..4456cc61db4 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/GDBTracepointPropertyPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2014 Ericsson and others. + * Copyright (c) 2009, 2015 Ericsson and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -19,6 +19,7 @@ import org.eclipse.cdt.debug.core.model.ICBreakpoint; import org.eclipse.cdt.debug.core.model.ICFunctionBreakpoint; import org.eclipse.cdt.debug.core.model.ICLineBreakpoint; import org.eclipse.cdt.debug.core.model.ICTracepoint; +import org.eclipse.cdt.debug.internal.ui.breakpoints.BreakpointsMessages; import org.eclipse.cdt.debug.internal.ui.breakpoints.CBreakpointContext; import org.eclipse.cdt.debug.internal.ui.breakpoints.CBreakpointPreferenceStore; import org.eclipse.cdt.debug.ui.breakpoints.ICBreakpointContext; @@ -27,6 +28,7 @@ import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.IDebugElement; import org.eclipse.debug.core.model.IDebugModelProvider; import org.eclipse.debug.ui.DebugUITools; @@ -37,6 +39,7 @@ import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.swt.widgets.Composite; @@ -179,8 +182,16 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme private TracepointStringFieldEditor fCondition; private Text fIgnoreCountTextControl; + + private TracepointIntegerFieldEditor fLineEditor; private TracepointIntegerFieldEditor fIgnoreCount; + /** + * Indicates if the page currently aims to create + * a breakpoint that already exits. + */ + private boolean fDuplicateBreakpoint; + private Text fPassCountTextControl; private TracepointIntegerFieldEditor fPassCount; @@ -204,11 +215,6 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme noDefaultAndApplyButton(); } - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors() - */ @Override protected void createFieldEditors() { ICTracepoint tracepoint = getTracepoint(); @@ -277,9 +283,10 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme } protected void createLineNumberEditor(Composite parent) { String title = Messages.PropertyPage_LineNumber; - TracepointIntegerFieldEditor labelFieldEditor = new TracepointIntegerFieldEditor(IMarker.LINE_NUMBER, title, parent); - labelFieldEditor.setValidRange(1, Integer.MAX_VALUE); - addField(labelFieldEditor); + fLineEditor = new TracepointIntegerFieldEditor(IMarker.LINE_NUMBER, title, parent); + fLineEditor.setValidRange(1, Integer.MAX_VALUE); + fLineEditor.setErrorMessage(Messages.PropertyPage_lineNumber_errorMessage); + addField(fLineEditor); } protected void createEnabledField(Composite parent) { @@ -314,6 +321,72 @@ public class GDBTracepointPropertyPage extends FieldEditorPreferencePage impleme return new LabelFieldEditor(parent, title, value); } + @Override + public boolean isValid() { + // Don't allow to create a duplicate breakpoint + return super.isValid() && !fDuplicateBreakpoint; + } + + @Override + public void propertyChange(PropertyChangeEvent event) { + super.propertyChange(event); + + ICBreakpoint currentBp = getTracepoint(); + if (!(currentBp instanceof ICFunctionBreakpoint) && + !(currentBp instanceof ICAddressBreakpoint)) { + // Check for duplication of line tracepoints + + if (event.getProperty().equals(FieldEditor.VALUE)) { + if (super.isValid()) { + // For every change, if all the fields are valid + // we then check if we are dealing with a duplicate + // breakpoint. + boolean oldValue = fDuplicateBreakpoint; + fDuplicateBreakpoint = isDuplicateBreakpoint(); + if (oldValue != fDuplicateBreakpoint) { + if (fDuplicateBreakpoint) { + setErrorMessage(BreakpointsMessages.getString("CBreakpointPropertyPage.breakpoint_already_exists_errorMessage")); //$NON-NLS-1$ + } else { + setErrorMessage(null); + } + // update container state + if (getContainer() != null) { + getContainer().updateButtons(); + } + // update page state + updateApplyButton(); + } + } + } + } + } + + private boolean isDuplicateBreakpoint() { + String source = getPreferenceStore().getString(ICBreakpoint.SOURCE_HANDLE); + int line = fLineEditor.getIntValue(); + + // Look for any breakpoint (base class) that has the same source file and line number as what + // is currently being inputed. Careful not to compare with the current tracepoint + // in the case of modifying the properties of an existing tracepoint; in + // that case we of course have this particular tracepoint at this file and line. + ICBreakpoint currentBp = getTracepoint(); + IBreakpoint[] breakpoints = DebugPlugin.getDefault().getBreakpointManager().getBreakpoints(); + for (IBreakpoint bp : breakpoints) { + if (!bp.equals(currentBp) && bp instanceof ICBreakpoint) { + IMarker marker = bp.getMarker(); + if (marker != null) { + String markerFile = marker.getAttribute(ICBreakpoint.SOURCE_HANDLE, ""); //$NON-NLS-1$ + int markerLine = marker.getAttribute(IMarker.LINE_NUMBER, -1); + if (source.equals(markerFile) && line == markerLine) { + // Woops, we already have another breakpoint at this file:line + return true; + } + } + } + } + return false; + } + protected ICTracepoint getTracepoint() { IAdaptable element = getElement(); if (element instanceof ICTracepoint) { diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.java index 413ad6379a8..0d86f8dee4c 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2014 Wind River Systems, Inc. and others. + * Copyright (c) 2009, 2015 Wind River Systems, Inc. and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -35,6 +35,7 @@ public class Messages extends NLS { public static String PropertyPage_function_value_errorMessage; public static String PropertyPage_Class; public static String PropertyPage_Enabled; + public static String PropertyPage_lineNumber_errorMessage; public static String DynamicPrintfPropertyPage_PrintString; public static String GdbThreadFilterEditor_Thread; diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.properties b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.properties index ab0f586ca71..dbc3edaee35 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.properties +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/breakpoints/Messages.properties @@ -1,5 +1,5 @@ ############################################################################### -# Copyright (c) 2009, 2014 Wind River Systems and others. +# Copyright (c) 2009, 2015 Wind River Systems and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -28,6 +28,7 @@ TracepointPropertyPage_PassCount=&Pass count: PropertyPage_Class=Class: PropertyPage_Enabled=Enabled PropertyPage_function_value_errorMessage=Enter a function expression: +PropertyPage_lineNumber_errorMessage=Enter a line number greater than 0 DynamicPrintfPropertyPage_PrintString=&printf( ToggleDynamicPrintfTargetFactory_description=Standard C/C++ Dynamic Printf type.