diff --git a/core/org.eclipse.ptp.proxy/.cproject b/core/org.eclipse.ptp.proxy/.cproject
index c4cfd8f..803af44 100644
--- a/core/org.eclipse.ptp.proxy/.cproject
+++ b/core/org.eclipse.ptp.proxy/.cproject
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?fileVersion 4.0.0?>
 
 <cproject>
-<storageModule moduleId="org.eclipse.cdt.core.settings">
-<cconfiguration id="converted.config.887763833">
-<storageModule moduleId="scannerConfiguration">
-<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="true" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="true"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
-<buildOutputProvider>
-<openAction enabled="false" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="makefileGenerator">
-<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
-<parser enabled="false"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="false" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="false"/>
-</scannerInfoProvider>
-</profile>
-<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
-<buildOutputProvider>
-<openAction enabled="false" filePath=""/>
-<parser enabled="true"/>
-</buildOutputProvider>
-<scannerInfoProvider id="specsFile">
-<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
-<parser enabled="false"/>
-</scannerInfoProvider>
-</profile>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.pathentry">
-<pathentry kind="src" path=""/>
-<pathentry kind="out" path=""/>
-<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
-</storageModule>
-<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="converted.config.887763833" moduleId="org.eclipse.cdt.core.settings" name="convertedConfig">
-<externalSettings/>
-<extensions>
-<extension id="org.eclipse.cdt.core.domsourceindexer" point="org.eclipse.cdt.core.CIndexer"/>
-<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
-<extension id="org.eclipse.cdt.core.MachO" point="org.eclipse.cdt.core.BinaryParser">
-<attribute key="c++filt" value="c++filt"/>
-</extension>
-</extensions>
-</storageModule>
-<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
-<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
-<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
-<buildTargets>
-<target name="all" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>all</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-<target name="clean" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
-<buildCommand>make</buildCommand>
-<buildArguments/>
-<buildTarget>clean</buildTarget>
-<stopOnError>false</stopOnError>
-<useDefaultCommand>true</useDefaultCommand>
-<runAllBuilders>true</runAllBuilders>
-</target>
-</buildTargets>
-</storageModule>
-</cconfiguration>
-</storageModule>
+	<storageModule moduleId="org.eclipse.cdt.core.settings">
+		<cconfiguration id="converted.config.887763833">
+			<storageModule moduleId="scannerConfiguration">
+				<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+					<buildOutputProvider>
+						<openAction enabled="true" filePath=""/>
+						<parser enabled="true"/>
+					</buildOutputProvider>
+					<scannerInfoProvider id="specsFile">
+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+						<parser enabled="true"/>
+					</scannerInfoProvider>
+				</profile>
+				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+					<buildOutputProvider>
+						<openAction enabled="false" filePath=""/>
+						<parser enabled="true"/>
+					</buildOutputProvider>
+					<scannerInfoProvider id="makefileGenerator">
+						<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
+						<parser enabled="false"/>
+					</scannerInfoProvider>
+				</profile>
+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+					<buildOutputProvider>
+						<openAction enabled="false" filePath=""/>
+						<parser enabled="true"/>
+					</buildOutputProvider>
+					<scannerInfoProvider id="specsFile">
+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+						<parser enabled="false"/>
+					</scannerInfoProvider>
+				</profile>
+				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+					<buildOutputProvider>
+						<openAction enabled="false" filePath=""/>
+						<parser enabled="true"/>
+					</buildOutputProvider>
+					<scannerInfoProvider id="specsFile">
+						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+						<parser enabled="false"/>
+					</scannerInfoProvider>
+				</profile>
+			</storageModule>
+			<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="converted.config.887763833" moduleId="org.eclipse.cdt.core.settings" name="convertedConfig">
+				<externalSettings/>
+				<extensions>
+					<extension id="org.eclipse.cdt.core.domsourceindexer" point="org.eclipse.cdt.core.CIndexer"/>
+					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+					<extension id="org.eclipse.cdt.core.MachO" point="org.eclipse.cdt.core.BinaryParser"/>
+				</extensions>
+			</storageModule>
+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+			<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
+			<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
+				<buildTargets>
+					<target name="all" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
+						<buildCommand>make</buildCommand>
+						<buildArguments/>
+						<buildTarget>all</buildTarget>
+						<stopOnError>false</stopOnError>
+						<useDefaultCommand>true</useDefaultCommand>
+						<runAllBuilders>true</runAllBuilders>
+					</target>
+					<target name="clean" path="" targetID="org.eclipse.cdt.make.MakeTargetBuilder">
+						<buildCommand>make</buildCommand>
+						<buildArguments/>
+						<buildTarget>clean</buildTarget>
+						<stopOnError>false</stopOnError>
+						<useDefaultCommand>true</useDefaultCommand>
+						<runAllBuilders>true</runAllBuilders>
+					</target>
+				</buildTargets>
+			</storageModule>
+		</cconfiguration>
+	</storageModule>
+	<storageModule moduleId="refreshScope"/>
+	<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+	<storageModule moduleId="org.eclipse.cdt.core.pathentry">
+		<pathentry kind="src" path=""/>
+		<pathentry kind="out" path=""/>
+		<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
+	</storageModule>
 </cproject>
diff --git a/debug/org.eclipse.ptp.debug.sdm/.cproject b/debug/org.eclipse.ptp.debug.sdm/.cproject
index d1b23ef..79f0af2 100644
--- a/debug/org.eclipse.ptp.debug.sdm/.cproject
+++ b/debug/org.eclipse.ptp.debug.sdm/.cproject
@@ -29,11 +29,17 @@
 							</tool>
 							<tool id="cdt.managedbuild.tool.macosx.cpp.linker.macosx.base.2087452132" name="MacOS X C++ Linker" superClass="cdt.managedbuild.tool.macosx.cpp.linker.macosx.base"/>
 							<tool id="cdt.managedbuild.tool.gnu.assembler.macosx.base.16549172" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.macosx.base">
+								<option id="gnu.both.asm.option.include.paths.695417966" superClass="gnu.both.asm.option.include.paths" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.eclipse.ptp.proxy}&quot;"/>
+								</option>
 								<inputType id="cdt.managedbuild.tool.gnu.assembler.input.2024977582" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
 							</tool>
 							<tool id="cdt.managedbuild.tool.gnu.archiver.macosx.base.939910910" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.macosx.base"/>
 							<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.base.2048437974" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.base"/>
 							<tool id="cdt.managedbuild.tool.gnu.c.compiler.macosx.base.134435837" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.macosx.base">
+								<option id="gnu.c.compiler.option.include.paths.2038149362" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
+									<listOptionValue builtIn="false" value="&quot;${workspace_loc:/org.eclipse.ptp.proxy}&quot;"/>
+								</option>
 								<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.841477569" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
 							</tool>
 						</toolChain>
diff --git a/debug/org.eclipse.ptp.debug.sdm/libmi/CLIOutput.c b/debug/org.eclipse.ptp.debug.sdm/libmi/CLIOutput.c
index 82778c1..e31aa88 100644
--- a/debug/org.eclipse.ptp.debug.sdm/libmi/CLIOutput.c
+++ b/debug/org.eclipse.ptp.debug.sdm/libmi/CLIOutput.c
@@ -140,9 +140,10 @@
 		}
 
 		/*
-		 * linux self: GUN gdb 6.5.0
-		 * fedore: GNU gdb Red Hat Linux (6.5-8.fc6rh)
+		 * Linux: GUN gdb 6.5.0
+		 * Fedora: GNU gdb Red Hat Linux (6.5-8.fc6rh)
 		 * Mac OS X: GNU gdb 6.1-20040303 (Apple version gdb-384) (Mon Mar 21 00:05:26 GMT 2005)
+		 * Ubuntu: GNU gdb (Ubuntu/Linaro 7.2-1ubuntu11) 7.2
 		 */
 		if (strncmp(text, "GNU gdb", 7) == 0) {
 			/*
diff --git a/debug/org.eclipse.ptp.debug.sdm/src/client/client_interface.c b/debug/org.eclipse.ptp.debug.sdm/src/client/client_interface.c
index be78fff..7d252ed 100644
--- a/debug/org.eclipse.ptp.debug.sdm/src/client/client_interface.c
+++ b/debug/org.eclipse.ptp.debug.sdm/src/client/client_interface.c
@@ -95,6 +95,8 @@
  	 	return -1;
 	}
 
+	ev->procs = idset_to_bitset(sdm_message_get_source(msg));
+
 	if (s->sess_event_handler != NULL) {
  		s->sess_event_handler(ev, s->sess_event_data);
 	}
@@ -136,11 +138,11 @@
 		return -1;
 	}
 
+	s->sess_procs = sdm_route_get_size() - 1;
+
 	tmp_idset = sdm_set_new();
 	tmp_bitset = bitset_new(s->sess_procs);
 
-	s->sess_procs = sdm_route_get_size() - 1;
-
 	sdm_aggregate_set_completion_callback(session_event_handler, (void *)s);
 
 	return 0;
@@ -159,7 +161,7 @@
 }
 
 int
-DbgStartSession(session *s, char *dir, char *prog, char *args)
+DbgStartSession(session *s, char *exe, char *path, char *args)
 {
 	int				res;
 	int				len;
@@ -168,8 +170,8 @@
 	proxy_msg *		msg = new_proxy_msg(DBG_STARTSESSION_CMD, 0);
 
 	proxy_msg_add_int(msg, SERVER_TIMEOUT);
-	proxy_msg_add_string(msg, dir);
-	proxy_msg_add_string(msg, prog);
+	proxy_msg_add_string(msg, exe);
+	proxy_msg_add_string(msg, path);
 	proxy_msg_add_string(msg, args);
 	proxy_serialize_msg(msg, &buf, &len);
 
diff --git a/debug/org.eclipse.ptp.debug.sdm/src/test/sdm_test.c b/debug/org.eclipse.ptp.debug.sdm/src/test/sdm_test.c
index aa783c8..1800cea 100644
--- a/debug/org.eclipse.ptp.debug.sdm/src/test/sdm_test.c
+++ b/debug/org.eclipse.ptp.debug.sdm/src/test/sdm_test.c
@@ -59,6 +59,7 @@
 		printf("error: %s\n", e->dbg_event_u.error_event.error_msg);
 		switch (e->dbg_event_u.error_event.error_code) {
 		case DBGERR_NOBACKEND:
+		case DBGERR_NOFILEDIR:
 			fatal++;
 			break;
 		default:
@@ -99,6 +100,7 @@
 			printf("exited with signal %s\n", e->dbg_event_u.exit_event.ev_u.sig->name);
 			break;
 		}
+		break;
 	case DBGEV_DATA:
 		printf("data is "); AIFPrint(stdout, 0, e->dbg_event_u.data_event.data); printf("\n");
 		break;
@@ -173,7 +175,7 @@
 	t = itimer_new("debug");
 	itimer_start(t);
 	
-	if (DbgStartSession(s, dir, exe, NULL) < 0) {
+	if (DbgStartSession(s, exe, dir, NULL) < 0) {
 		fprintf(stderr, "error: %s\n", DbgGetErrorStr());
 		return 1;
 	}
@@ -262,12 +264,19 @@
 	char *		exe;
 
 	if (argc < 2) {
-		fprintf(stderr, "usage: test_proxy_clnt exe [host]\n");
+		fprintf(stderr, "usage: sdm_test [dir] exe\n");
 		return 1;
 	}
 
-	dir = getcwd(NULL, 0);
-	exe = argv[1];
+	if (argc == 2) {
+		dir = getcwd(NULL, 0);
+		exe = argv[1];
+	} else {
+		dir = argv[1];
+		exe = argv[2];
+	}
+
+	debug_level = 3;
 
 	if (DbgInit(&s, argc, argv) < 0) {
 		fprintf(stderr, "DbgInit failed\n");
diff --git a/debug/org.eclipse.ptp.debug.sdm/src/utils/event.c b/debug/org.eclipse.ptp.debug.sdm/src/utils/event.c
index 9a5c49e..ac61ff5 100644
--- a/debug/org.eclipse.ptp.debug.sdm/src/utils/event.c
+++ b/debug/org.eclipse.ptp.debug.sdm/src/utils/event.c
@@ -617,7 +617,6 @@
 DbgDeserializeEvent(int id, int nargs, char **args, dbg_event **ev)
 {
 	dbg_event *	e = NULL;
-	bitset *	procs = NULL;
 
 	e = NewDbgEvent(id);
 
@@ -739,16 +738,12 @@
 		goto error_out;
 	}
 
-	e->procs = procs;
 	*ev = e;
 
 	return 0;
 
 error_out:
 
-	if (procs != NULL)
-		bitset_free(procs);
-
 	if (e != NULL)
 		FreeDbgEvent(e);
 
