Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dołącza aparat debugowania (DE) do programu lub programów. Wywoływany przez menedżera debugowania sesji (SDM), gdy de jest uruchomiony w procesie do sdM.
Składnia
int Attach(
IDebugProgram2[] pProgram,
IDebugProgramNode2[] rgpProgramNodes,
uint celtPrograms,
IDebugEventCallback2 pCallback,
Enum_ATTACH_REASON dwReason
);
Parametry
pProgram
[in] Tablica obiektów IDebugProgram2 reprezentujących programy do dołączenia. Są to programy portowe.
rgpProgramNodes
[in] Tablica obiektów IDebugProgramNode2 reprezentujących węzły programu, po jednym dla każdego programu. Węzły programu w tej tablicy reprezentują te same programy co w programie pProgram. Węzły programu są podane, aby de mógł zidentyfikować programy do dołączenia.
celtPrograms
[in] Liczba programów i/lub węzłów programu w pProgram tablicach i rgpProgramNodes .
pCallback
[in] Obiekt IDebugEventCallback2 , który ma być używany do wysyłania zdarzeń debugowania do sdM.
dwReason
[in] Wartość z wyliczenia ATTACH_REASON , która określa przyczynę dołączenia tych programów. Aby uzyskać więcej informacji, zobacz sekcję: Uwagi.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość S_OK; w przeciwnym razie zwraca kod błędu.
Uwagi
Istnieją trzy powody dołączania do programu w następujący sposób:
ATTACH_REASON_LAUNCHwskazuje, że de jest dołączany do programu, ponieważ użytkownik uruchomił proces, który go zawiera.ATTACH_REASON_USERwskazuje, że użytkownik jawnie zażądał od DE dołączenia do programu (lub procesu zawierającego program).ATTACH_REASON_AUTOwskazuje, że DE jest dołączany do określonego programu, ponieważ już debuguje inne programy w określonym procesie. Jest to również nazywane automatycznym dołączaniem.Po wywołaniu tej metody de musi wysłać następujące zdarzenia w sekwencji:
IDebugEngineCreateEvent2 (jeśli nie został jeszcze wysłany dla określonego wystąpienia aparatu debugowania)
-
Ponadto, jeśli przyczyną dołączenia jest
ATTACH_REASON_LAUNCH, de musi wysłać zdarzenie IDebugEntryPointEvent2 .Gdy de pobiera obiekt IDebugProgramNode2 odpowiadający debugowanemu programowi, można go odpytować dla dowolnego interfejsu prywatnego.
Przed wywołaniem metod węzła programu w tablicy podanej przez
pProgramlubrgpProgramNodes, personifikacja, jeśli jest to wymagane, należy włączyć wIDebugProgram2interfejsie reprezentującym węzeł programu. Zwykle jednak ten krok nie jest konieczny. Aby uzyskać więcej informacji, zobacz Problemy z zabezpieczeniami.