1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

Added Debugger console to older debuggers

This commit is contained in:
David Inglis 2004-10-27 15:22:03 +00:00
parent 08412e5d6d
commit 61b7feb54d
2 changed files with 24 additions and 3 deletions

View file

@ -8,6 +8,10 @@
******************************************************************************/
package org.eclipse.cdt.debug.internal.core;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.util.Date;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.IBinaryParser.IBinaryExecutable;
import org.eclipse.cdt.core.model.ICProject;
@ -27,8 +31,10 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.model.IProcess;
public class CDebugAdapter implements ICDIDebugger {
@ -58,17 +64,31 @@ public class CDebugAdapter implements ICDIDebugger {
ICDISession session;
try {
if (pid == -1 && coreFile == null) {
return fDebugger.createLaunchSession(config, exeFile[0]);
session = fDebugger.createLaunchSession(config, exeFile[0]);
} else if (pid != -1) {
return fDebugger.createAttachSession(config, exeFile[0], pid);
session = fDebugger.createAttachSession(config, exeFile[0], pid);
} else {
session = fDebugger.createCoreSession(config, exeFile[0], new Path(coreFile));
}
return fDebugger.createCoreSession(config, exeFile[0], new Path(coreFile));
Process debugger = session.getSessionProcess();
if (debugger != null) {
IProcess debuggerProcess = DebugPlugin.newProcess(launch, debugger, renderDebuggerProcessLabel());
launch.addProcess(debuggerProcess);
}
} catch (CDIException e) {
abort(e.getLocalizedMessage(), e, -1);
}
throw new IllegalStateException(); // should never happen
}
protected String renderDebuggerProcessLabel() {
String format = "{0} ({1})"; //$NON-NLS-1$
String timestamp = DateFormat.getInstance().format(new Date(System.currentTimeMillis()));
String message = InternalDebugCoreMessages.getString("CDebugAdapter.1");
return MessageFormat.format(format, new String[]{message, timestamp}); //$NON-NLS-1$
}
protected void abort(String message, Throwable exception, int code) throws CoreException {
MultiStatus status = new MultiStatus(CDebugCorePlugin.getUniqueIdentifier(), code, message, exception);
status.add(new Status(IStatus.ERROR, CDebugCorePlugin.getUniqueIdentifier(), code, exception == null ? "" : exception.getLocalizedMessage(), //$NON-NLS-1$

View file

@ -18,3 +18,4 @@ CGlobalVariableManager.0=Invalid global variables data.
CExtendedMemoryBlockRetrieval.0=Expression ''{0}'' evaluated to invalid address value: {1}.
DebugConfiguration.0=This debugger no longer supports this operation
CDebugAdapter.0=This debugger does not support debugging external files
CDebugAdapter.1=Debugger Process