Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreutarass2008-04-12 01:56:34 +0000
committereutarass2008-04-12 01:56:34 +0000
commit190f9fd77f29985d2d662dfe6208f170cf079ea5 (patch)
tree4b6a5efdeddf4e21d71cbfddc3ac2443aa55ff4d /plugins/org.eclipse.tm.tcf.debug
parente1f388087058d093e8b844c6739e20aec6b0b545 (diff)
downloadorg.eclipse.tcf-190f9fd77f29985d2d662dfe6208f170cf079ea5.tar.gz
org.eclipse.tcf-190f9fd77f29985d2d662dfe6208f170cf079ea5.tar.xz
org.eclipse.tcf-190f9fd77f29985d2d662dfe6208f170cf079ea5.zip
TCF agent: Processes service is implemented for Windows. Now TCF debugger prototype can start and attach a Windows process.
Also fixed: 1. racing in TCFLaunch startup sequence 2. broken channel close notifications in the agent 3. missing command reply arguments in daytime.c example code 4. null pointer exception in TCF/RSE bridge
Diffstat (limited to 'plugins/org.eclipse.tm.tcf.debug')
-rw-r--r--plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java
index 2f3904935..6bacd0c49 100644
--- a/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java
+++ b/plugins/org.eclipse.tm.tcf.debug/src/org/eclipse/tm/internal/tcf/debug/model/TCFLaunch.java
@@ -118,7 +118,7 @@ public class TCFLaunch extends Launch {
Map<String,String> vars = new HashMap<String,String>();
if (append) vars.putAll(def);
if (env != null) vars.putAll(env);
- ps.start(dir, file, toArgsArray(args), vars, attach, new IProcesses.DoneStart() {
+ ps.start(dir, file, toArgsArray(file, args), vars, attach, new IProcesses.DoneStart() {
public void doneStart(IToken token, Exception error, ProcessContext process) {
if (error != null) {
channel.terminate(error);
@@ -138,10 +138,11 @@ public class TCFLaunch extends Launch {
}
}
- private String[] toArgsArray(String cmd) {
+ private String[] toArgsArray(String file, String cmd) {
int i = 0;
int l = cmd.length();
List<String> arr = new ArrayList<String>();
+ arr.add(file);
for (;;) {
while (i < l && cmd.charAt(i) == ' ') i++;
if (i >= l) break;
@@ -174,6 +175,8 @@ public class TCFLaunch extends Launch {
for (Iterator<Listener> i = listeners.iterator(); i.hasNext();) {
i.next().onDisconnected(this);
}
+ if (error != null) setError(error);
+ else fireChanged();
if (DebugPlugin.getDefault() != null) fireTerminate();
}

Back to the top