Udostępnij za pośrednictwem


Obsługa wyjątków (zestaw Visual Studio SDK)

Poniżej opisano proces, który występuje w przypadku zgłaszania wyjątków.

Proces obsługi wyjątków

  1. Gdy wyjątek jest zgłaszany po raz pierwszy, ale przed jego obsługą przez program obsługi wyjątków w debugowanym programie aparat debugowania (DE) wysyła zdarzenie IDebugExceptionEvent2 do menedżera debugowania sesji (SDM) jako zdarzenie zatrzymania. Element IDebugExceptionEvent2 jest wysyłany, jeśli tylko ustawienia wyjątku (określone w oknie dialogowym Wyjątki w pakiecie debugowania) określają, że użytkownik chce zatrzymać powiadomienia o wyjątkach pierwszej szansy.

  2. SdM wywołuje właściwość IDebugExceptionEvent2::GetException , aby uzyskać właściwość wyjątku.

  3. Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.

  4. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku pierwszej szansy.

  5. Jeśli użytkownik zdecyduje się kontynuować, program SDM wywołuje metodę IDebugExceptionEvent2::CanPassToDebuggee.

  6. Jeśli debugowany program nie ma procedury obsługi dla wyjątku drugiej szansy, de wysyła do IDebugExceptionEvent2 SDM jako EVENT_SYNC_STOP.

  7. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku pierwszej szansy.

  8. Pakiet debugowania wywołuje element IDebugExceptionEvent2::CanPassToDebuggee , aby określić, jakie opcje mają być przedstawione użytkownikowi.

  9. Pakiet debugowania pyta użytkownika, jak obsłużyć wyjątek, otwierając okno dialogowe wyjątku drugiej szansy.

  10. Jeśli metoda zwraca S_OK, wywołuje metodę IDebugExceptionEvent2::PassToDebuggee.