###############################################################################
# Copyright (c) 2006, 2012 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
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#   Wind River Systems - initial API and implementation
#   IBM Corporation
#   Jason Litton (Sage Electronic Engineering, LLC) - Added label for dynamic tracing (Bug 379169)
###############################################################################
pluginName=GDB DSF Debugger Integration Core
providerName=Eclipse CDT

launchDelegate.localApplication.name=GDB (DSF) Create Process
launchDelegate.localApplication.description=Start new application under control of GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.remoteApplication.name=GDB (DSF) Manual Remote Debugging
launchDelegate.remoteApplication.description=Debug a new application that was manually started on a remote system under control of GDB debugger integrated using the Debugger Services Framework (DSF).
launchDelegate.attach.name=GDB (DSF) Attach to Process
launchDelegate.attach.description=Attach the GDB debugger, integrated using the Debugger Services Framework (DSF), to a running program locally or remotely.
launchDelegate.postmortem.name=GDB (DSF) Postmortem Debugger
launchDelegate.postmortem.description=Load an application dump using the GDB debugger integrated using the Debugger Services Framework (DSF).
cdt.dsf.gdb.component.label = CDT GDB Core
