###############################################################################
# Copyright (c) 2007-2020 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 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#  
# Contributors:
#     Wind River Systems - initial implementation
###############################################################################
pluginName = TCF/CDT Integration UI
providerName = Eclipse.org - TCF

breakpoints.filterPage.name = Scope
launchConfigType.remoteApplication.name=TCF Remote Application

launchTab.target.name=Target
launchTab.application.name=Application
launchTab.arguments.name=Arguments
launchTab.debugger.name=Debugger
launchTab.sourceLookup.name=Source
launchTab.pathMap.name=Path Map
launchTab.common.name=Common
launchTab.environment.name=Environment

launchDelegate.localApplication.name=TCF Create Process
launchDelegate.localApplication.description=Start new application under control of a local TCF agent.
launchDelegate.remoteApplication.name=TCF Remote Process
launchDelegate.remoteApplication.description=Start new application on a remote system under control of a remote TCF agent.
launchDelegate.attach.name=TCF Attach to Process
launchDelegate.attach.description=Attach to a running local or remote program.

action.addWatchpoint.label=Add Watchpoint (C/C++)...
action.breakpointScope.label=Scope Properties...

command.addWatchpoint.name=Add Watchpoint (C/C++)
command.addWatchpoint.desc=Allows to add a new watchpoint on an arbitrary symbol
command.scopeProperties.name=Breakpoint Scope Properties
command.scopeProperties.desc=Edits the breakpoint scope settings of the given group of breakpoints. 


item.addWatchpoint.name=Add Watchpoint...

editor.sourceNotFound.name=Source Not Found

breakpointsPreferencePage.name = Breakpoints
breakpointScope.label=Scope
