IDebugEngine2::Attach
Asocia un motor de depuración (DE) a un programa o programas. Lo llama el administrador de depuración de sesión (SDM) cuando el DE se ejecuta en proceso en el SDM.
Sintaxis
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parámetros
pProgram
[in] Matriz de objetos IDebugProgram2 a los que se van a adjuntar programas. Estos son programas de puerto.
rgpProgramNodes
[in] Matriz de objetos IDebugProgramNode2 que representan nodos de programa, uno para cada programa. Los nodos de programa de esta matriz representan los mismos programas que en pProgram
. Los nodos de programa se proporcionan para que el DE pueda identificar los programas a los que se va a asociar.
celtPrograms
[in] Número de programas o nodos de programa en las pProgram
matrices y rgpProgramNodes
.
pCallback
[in] Objeto IDebugEventCallback2 que se usará para enviar eventos de depuración al SDM.
dwReason
[in] Valor de la enumeración ATTACH_REASON que especifica el motivo para adjuntar estos programas. Para obtener más información, vea la sección Comentarios.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK
; de lo contrario, devuelve un código de error.
Comentarios
Hay tres motivos para asociarse a un programa, como se indica a continuación:
ATTACH_REASON_LAUNCH
indica que el DE está adjuntando al programa porque el usuario inició el proceso que lo contiene.ATTACH_REASON_USER
indica que el usuario ha solicitado explícitamente al DE que se adjunte a un programa (o el proceso que contiene un programa).ATTACH_REASON_AUTO
indica que el DE está adjuntando a un programa determinado porque ya está depurando otros programas en un proceso determinado. Esto también se denomina asociación automática.Cuando se llama a este método, el DE debe enviar estos eventos en secuencia:
IDebugEngineCreateEvent2 (si aún no se ha enviado para una instancia determinada del motor de depuración)
-
Además, si el motivo de la asociación es
ATTACH_REASON_LAUNCH
, el DE debe enviar el evento IDebugEntryPointEvent2 .Una vez que el DE obtiene el objeto IDebugProgramNode2 correspondiente al programa que se está depurando, se puede consultar para cualquier interfaz privada.
Antes de llamar a los métodos de un nodo de programa en la matriz dada por
pProgram
orgpProgramNodes
, la suplantación, si es necesario, debe estar habilitada en laIDebugProgram2
interfaz que representa el nodo del programa. Normalmente, este paso no es necesario. Para obtener más información, consulte Problemas de seguridad.