diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 533ff3e1acc..9890d1f22e2 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2005-05-21 Mikhail Khodjaiants + Bug 91374: CDT launch should set ATTR_PROCESS_TYPE. + * ICDTLaunchConfigurationConstants.java + 2005-06-20 Mikhail Khodjaiants Bug 93856: Variable View: Should disable change value options if selected item is not changeable. * CVariable.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java index 6c00afce577..e3d426b00fb 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/ICDTLaunchConfigurationConstants.java @@ -17,6 +17,14 @@ public interface ICDTLaunchConfigurationConstants { */ public static final String ID_LAUNCH_C_APP = "org.eclipse.cdt.launch.localCLaunch"; //$NON-NLS-1$ + /** + * Identifier for the C/C++ program process type, which is annotated on processes created + * by the C/C++ application launch delegate. + * + * (value "C/C++"). + */ + public static final String ID_PROGRAM_PROCESS_TYPE = "C/C++"; //$NON-NLS-1$ + /** * Launch configuration attribute key. The value is a name of a C/C++ * project associated with a C/C++ launch configuration. diff --git a/launch/org.eclipse.cdt.launch/ChangeLog b/launch/org.eclipse.cdt.launch/ChangeLog index cc92a806292..a39cd48daea 100644 --- a/launch/org.eclipse.cdt.launch/ChangeLog +++ b/launch/org.eclipse.cdt.launch/ChangeLog @@ -1,3 +1,9 @@ +2005-05-21 Mikhail Khodjaiants + Bug 91374: CDT launch should set ATTR_PROCESS_TYPE. + * AbstractCLaunchDelegate.java + * CoreFileLaunchDelegate.java + * LocalRunLaunchDelegate.java + 2005-05-15 Mikhail Khodjaiants Bug 87556: Post-mortem debug fails silently if core file is inaccessible. Applied patch from Joanne Woo (Monta Vista). diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java index 95dfd5355ce..2ba672a75f8 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/AbstractCLaunchDelegate.java @@ -16,13 +16,13 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Map.Entry; - import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.IBinaryParser; import org.eclipse.cdt.core.ICExtensionReference; @@ -59,6 +59,7 @@ import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.core.IStatusHandler; import org.eclipse.debug.core.model.IPersistableSourceLocator; +import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.core.model.LaunchConfigurationDelegate; abstract public class AbstractCLaunchDelegate extends LaunchConfigurationDelegate { @@ -724,8 +725,8 @@ abstract public class AbstractCLaunchDelegate extends LaunchConfigurationDelegat * @return * @throws CoreException */ - protected IBinaryObject verifyBinary(ICProject project, IPath exePath) throws CoreException { - ICExtensionReference[] parserRef = CCorePlugin.getDefault().getBinaryParserExtensions(project.getProject()); + protected IBinaryObject verifyBinary(ICProject proj, IPath exePath) throws CoreException { + ICExtensionReference[] parserRef = CCorePlugin.getDefault().getBinaryParserExtensions(proj.getProject()); for (int i = 0; i < parserRef.length; i++) { try { IBinaryParser parser = (IBinaryParser)parserRef[i].createExtension(); @@ -848,4 +849,15 @@ abstract public class AbstractCLaunchDelegate extends LaunchConfigurationDelegat } return prop; } + + /** + * Returns the default process attribute map for C/C++ processes. + * + * @return default process attribute map for C/C++ processes + */ + protected Map getDefaultProcessMap() { + Map map = new HashMap(); + map.put( IProcess.ATTR_PROCESS_TYPE, ICDTLaunchConfigurationConstants.ID_PROGRAM_PROCESS_TYPE ); + return map; + } } \ No newline at end of file diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java index d8dc69bbd07..d1f686e93a0 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CoreFileLaunchDelegate.java @@ -91,7 +91,7 @@ public class CoreFileLaunchDelegate extends AbstractCLaunchDelegate { Process process = targets[i].getProcess(); IProcess iprocess = null; if (process != null) { - iprocess = DebugPlugin.newProcess(launch, process, renderProcessLabel(exePath.toOSString())); + iprocess = DebugPlugin.newProcess(launch, process, renderProcessLabel(exePath.toOSString()), getDefaultProcessMap()); } CDIDebugModel.newDebugTarget(launch, project.getProject(), targets[i], renderTargetLabel(debugConfig), iprocess, exeFile, true, false, false); diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalRunLaunchDelegate.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalRunLaunchDelegate.java index 0d2511a65a4..45b0f7d8a07 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalRunLaunchDelegate.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/LocalRunLaunchDelegate.java @@ -100,7 +100,7 @@ public class LocalRunLaunchDelegate extends AbstractCLaunchDelegate { Process process = targets[i].getProcess(); IProcess iprocess = null; if (process != null) { - iprocess = DebugPlugin.newProcess(launch, process, renderProcessLabel(exePath.toOSString())); + iprocess = DebugPlugin.newProcess(launch, process, renderProcessLabel(exePath.toOSString()), getDefaultProcessMap()); } CDIDebugModel.newDebugTarget(launch, project.getProject(), targets[i], renderTargetLabel(debugConfig), iprocess, exeFile, true, false, stopInMain, true);