Sdílet prostřednictvím


IDebugEngine2::Attach

Připojí ladicí modul (DE) k programu nebo programům. Volal správce ladění relací (SDM), když de běží v procesu do SDM.

Syntaxe

int Attach( 
   IDebugProgram2[]     pProgram,
   IDebugProgramNode2[] rgpProgramNodes,
   uint                 celtPrograms,
   IDebugEventCallback2 pCallback,
   Enum_ATTACH_REASON   dwReason
);

Parametry

pProgram
[v] Pole IDebugProgram2 objekty, které představují programy, které mají být připojeny. Jedná se o programy portů.

rgpProgramNodes
[v] Pole IDebugProgramNode2 objektů, které představují programové uzly, jeden pro každý program. Programové uzly v tomto poli představují stejné programy jako v pProgram. Programové uzly jsou dány tak, aby de mohl identifikovat programy, ke kterým se mají připojit.

celtPrograms
[v] Počet programů nebo programových uzlů v pProgram polích a rgpProgramNodes polích

pCallback
[v] IDebugEventCallback2 objekt, který se má použít k odesílání událostí ladění do SDM.

dwReason
[v] Hodnota z ATTACH_REASON výčtu, která určuje důvod připojení těchto programů. Další informace najdete v části Poznámky.

Vrácená hodnota

V případě úspěchu vrátí hodnotu S_OK; v opačném případě vrátí kód chyby.

Poznámky

Existují tři důvody připojení k programu následujícím způsobem:

  • ATTACH_REASON_LAUNCH značí, že de se připojuje k programu, protože uživatel spustil proces, který ho obsahuje.

  • ATTACH_REASON_USER označuje, že uživatel explicitně požádal o připojení k programu (nebo procesu, který obsahuje program).

  • ATTACH_REASON_AUTO indikuje, že de se připojuje k určitému programu, protože již ladí jiné programy v určitém procesu. Říká se tomu také automatické připojení.

    Při zavolání této metody musí de odesílat tyto události v posloupnosti:

  1. IDebugEngineCreateEvent2 (pokud ještě nebyl odeslán pro konkrétní instanci ladicího modulu)

  2. IDebugProgramCreateEvent2

  3. IDebugLoadCompleteEvent2

    Kromě toho, pokud důvod připojení je ATTACH_REASON_LAUNCH, DE musí odeslat IDebugEntryPointEvent2 událost.

    Jakmile DE získá IDebugProgramNode2 objekt odpovídající programu laděný, může být dotazován na libovolné privátní rozhraní.

    Před voláním metod programového uzlu v poli poskytnutém zosobněním pProgram nebo rgpProgramNodeszosobnění v případě potřeby by mělo být povoleno v IDebugProgram2 rozhraní, které představuje programový uzel. Tento krok však obvykle není nutný. Další informace najdete v tématu Problémy se zabezpečením.

Viz také