public static SdbShellCommand CreateProcess (
			TizenExecutionCommand cmd,
			string sdbOptions,
			TizenSdkInfo sdkInfo,
			Action<string> stdOut, Action<string> stdErr)
		{
			string exec = GetCommandString (cmd, sdbOptions);

			var sdb = new TizenSdkSdb (cmd.Config, sdkInfo);

			return new SdbShellCommand (sdb, exec, stdOut, stdErr);
		}
		public static string GetCommandString (
			TizenExecutionCommand cmd,
			string sdbOptions)
		{
			string runtimeArgs = string.IsNullOrEmpty (cmd.RuntimeArguments)
				? (string.IsNullOrEmpty (sdbOptions)? "--debug" : "")
				: cmd.RuntimeArguments;
			
			var sb = new StringBuilder ();
			foreach (var arg in cmd.EnvironmentVariables)
				sb.AppendFormat ("{0}='{1}' ", arg.Key, arg.Value);
			sb.Append ("mono");
			if (!string.IsNullOrEmpty (sdbOptions))
				sb.AppendFormat (" --debug --debugger-agent={0}", sdbOptions);
			
			sb.AppendFormat (" {0} '{1}' {2}", runtimeArgs, cmd.DeviceExePath, cmd.Arguments);
			
			return sb.ToString ();
		}
		public TizenSoftDebuggerStartInfo (IPAddress address,
						   int debugPort,
						   TizenExecutionCommand cmd,
						   TizenSdkInfo sdkInfo)
			: base (new SoftDebuggerListenArgs (cmd.Name, address, debugPort))
		{
			ExecutionCommand = cmd;
			SdkInfo = sdkInfo;
		}