Aracılığıyla paylaş


ICorDebugUnmanagedCallback::D ebugEvent Yöntemi

Hata ayıklayıcıya yerel bir olayın tetiklendiğini bildirir.

Sözdizimi

HRESULT DebugEvent (
    [in] LPDEBUG_EVENT  pDebugEvent,
    [in] BOOL           fOutOfBand
);

Parametreler

pDebugEvent [in] Yerel olayın işaretçisi.

fOutOfBand [in] true, yönetilmeyen bir olay gerçekleştikten sonra yönetilen işlem durumuyla etkileşim mümkün değilse, hata ayıklayıcı ICorDebugController::Continue; aksi halde falseçağırana kadar .

Açıklamalar

Hata ayıklanan iş parçacığı bir Win32 iş parçacığıysa, Win32 hata ayıklama arabiriminin üyelerini kullanmayın. Yalnızca bir Win32 iş parçacığında ve yalnızca bant dışı bir olayı geçmişe devam ederken çağırabilirsiniz ICorDebugController::Continue .

Geri DebugEvent arama, geri çağırmalar için standart kurallara uymaz. çağırdığınızda DebugEvent, işlem ham, işletim sistemi hatalarını ayıklama durdurulmuş durumda olur. İşlem eşitlenmez. Yönetilen kod hakkındaki bilgi isteklerini karşılamak için gerektiğinde otomatik olarak eşitlenmiş durumu girer ve bu da diğer iç içe DebugEvent geri çağırmalara neden olabilir.

İşleme devam etmeden önce bir özel durum olayını yoksaymak için işlemde ICorDebugProcess::ClearCurrentException öğesini çağırın. Bu yöntemi çağırmak, devam isteğinde DBG_EXCEPTION_NOT_HANDLED yerine DBG_CONTINUE gönderir ve bant dışı kesme noktalarını ve tek adımlı özel durumları otomatik olarak temizler. Bant dışı olaylar, hata ayıklanan uygulama durdurulmuş gibi göründüğünde ve bant içi bekleyen bir olay zaten mevcut olduğunda bile herhangi bir zamanda gelebilir.

Hata ayıklayıcı, bant dışı bir kesme noktası olayının hemen ardından devam etmelidir. Hata ayıklayıcı, kesme noktaları eklemek ve kaldırmak için ICorDebugProcess2::SetUnmanagedBreakpoint ve ICorDebugProcess2::ClearUnmanagedBreakpoint yöntemlerini kullanmalıdır. Bu yöntemler bant dışı kesme noktalarını otomatik olarak atlar. Bu nedenle, dağıtılan tek bant dışı kesme noktaları, Win32 DebugBreak işlevi çağrısı gibi yönerge akışında zaten bulunan ham kesme noktaları olmalıdır. , ICorDebugProcess::GetThreadContext, ICorDebugProcess::SetThreadContext veya hata ayıklama API'sinin başka bir üyesini kullanmayı ICorDebugProcess::ClearCurrentExceptiondenemeyin.

Gereksinimler

Platform: Bkz. .NET tarafından desteklenen işletim sistemleri.

Üstbilgi: CorDebug.idl, CorDebug.h

Kütüphane: CorGuids.lib

.NET sürümleri: .NET Framework 1.0'dan itibaren kullanılabilir

Ayrıca bakınız