public int AddProgramNode(IDebugProgramNode2 programNode)
        {
            programNodes.Add(programNode);
            var port = defaultPortFactory.Create(this);
            // TODO: Should this synchronously call IDebugEngine2.Attach() or should it
            // add a job to the job queue?
            var result = debugEngine.Attach(
                new IDebugProgram2[]
            {
                debugProgramFactory.Create(processFactory.Create("Game Process", port))
            },
                new IDebugProgramNode2[] { programNode }, 1, callback,
                enum_ATTACH_REASON.ATTACH_REASON_LAUNCH);

            HResultChecker.Check(result);
            return(VSConstants.S_OK);
        }