public static bool TryParse(string s, out DebuggerAddress result)
        {
            if (s == null)
            {
                result = null;
                return(false);
            }

            var split = s.Split(':');

            if (split.Length != 2)
            {
                result = null;
                return(false);
            }

            IPAddress ip;

            if (!IPAddress.TryParse(split[0], out ip))
            {
                result = null;
                return(false);
            }

            ushort port;

            if (!ushort.TryParse(split[1], out port))
            {
                result = null;
                return(false);
            }

            result = new DebuggerAddress(ip, port);
            return(true);
        }
        private void ComputeAvailableDebuggerAddress()
        {
            var address = DebuggerAddress.GetAvailable();

            if (address == null)
            {
                throw new DebuggerInitializeException("Debugger port is unavailable.");
            }

            DebuggerAddress = address;
        }