Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kullanıcı F9 tuşuna basarak bir kesme noktası ayarlarsa, IDE isteği formüle eder ve hata ayıklama oturumundan kesme noktasını oluşturmasını ister.
Kesme noktası ayarlama
Kesme noktasından etkilenen kod veya veriler henüz kullanılamayabileceği için kesme noktası ayarlamak iki adımlı bir işlemdir. İlk olarak, kesme noktası açıklanmalıdır ve ardından, kod veya veriler kullanılabilir hale geldikçe, aşağıdaki gibi bu koda veya verilere bağlı olmalıdır:
Kesme noktası ilgili hata ayıklama altyapılarından (DE) istenir ve sonra kesme noktası kullanılabilir hale geldikçe koda veya verilere bağlıdır.
Kesme noktası isteği hata ayıklama oturumuna gönderilir ve bu istek tüm ilgili DE'lere gönderilir. Kesme noktasını işlemeyi seçen herhangi bir DE, karşılık gelen bir bekleyen kesme noktası oluşturur.
Hata ayıklama oturumu bekleyen kesme noktalarını toplar ve hata ayıklama paketine (Visual Studio'nun hata ayıklama bileşeni) geri gönderir.
Hata ayıklama paketi, hata ayıklama oturumundan bekleyen kesme noktasını koda veya verilere bağlamasını ister. Hata ayıklama oturumu bu isteği tüm ilgili DE'lere gönderir.
DE kesme noktasını bağlayabilirse, hata ayıklama oturumuna bir kesme noktası bağlı olayı geri gönderir. Aksi takdirde, bunun yerine bir kesme noktası hata olayı gönderir.
Bekleyen kesme noktaları
Bekleyen bir kesme noktası birden çok kod konumuna bağlanabilir. Örneğin, bir C++ şablonu için kaynak kod satırı, şablondan oluşturulan her kod dizisine bağlanabilir. Hata ayıklama oturumu, olayın gönderildiği sırada bir kesme noktasına bağlı kod bağlamlarını listelemek için kesme noktası bağlı olayı kullanabilir. Daha sonra daha fazla kod bağlamı bağlanabilir, bu nedenle DE her bağlama isteği için birden çok kesme noktası bağlı olayı gönderebilir. Ancak de bağlama isteği başına yalnızca bir kesme noktası hata olayı göndermelidir.
Uygulama
Program aracılığıyla, hata ayıklama paketi oturum hata ayıklama yöneticisini (SDM) çağırır ve ayarlanacak kesme noktasını açıklayan bir BP_REQUEST_INFO yapısını sarmalayan bir IDebugBreakpointRequest2 arabirimi verir. Kesme noktaları birçok biçimde olsa da, sonuçta bir kod veya veri bağlamı olarak çözümlenebilir.
SDM, CreatePendingBreakpoint yöntemini çağırarak bu çağrıyı ilgili her DE'ye geçirir. DE kesme noktasını işlemeyi seçerse, bir IDebugPendingBreakpoint2 arabirimi oluşturur ve döndürür. SDM bu arabirimleri toplar ve tek IDebugPendingBreakpoint2 bir arabirim olarak hata ayıklama paketine geri geçirir.
Şimdiye kadar hiçbir olay oluşturulmadı.
Hata ayıklama paketi daha sonra DE tarafından uygulanan Bind çağırarak bekleyen kesme noktasını koda veya verilere bağlamayı dener.
Kesme noktası bağlıysa, DE hata ayıklama paketine bir IDebugBreakpointBoundEvent2 olay arabirimi gönderir. Hata ayıklama paketi, bir veya daha fazla IDebugBoundBreakpoint2 arabirimi döndüren EnumBoundBreakpoints çağrısı yaparak kesme noktasına bağlı tüm kod bağlamlarını (veya tek veri bağlamını) listelemek için bu arabirimi kullanır. GetBreakpointResolution arabirimi bir IDebugBreakpointResolution2 arabirimi döndürür ve GetResolutionInfo kodu veya veri bağlamını içeren bir BP_RESOLUTION_INFO birleşimi döndürür.
DE kesme noktasını bağlayamazsa hata ayıklama paketine tek bir IDebugBreakpointErrorEvent2 olay arabirimi gönderir. Hata ayıklama paketi, GetErrorBreakpoint'i ve ardından GetBreakpointResolution ve GetResolutionInfo'yı çağırarak hata türünü (hata veya uyarı) ve bilgilendirici iletiyi alır. Bu, hata türünü ve iletiyi içeren bir BP_ERROR_RESOLUTION_INFO yapısı döndürür.
BIR DE kesme noktasını işler ancak bunu bağlayamazsa türünde BPET_TYPE_ERRORbir hata döndürür. Hata ayıklama paketi bir hata iletişim kutusu görüntüleyerek yanıt verir ve IDE, kesme noktası karakteri içine kaynak kod satırının soluna bir ünlem karakteri yerleştirir.
DE bir kesme noktasını işlerse, onu bağlayamazsa, ancak başka bir DE bunu bağlayabilirse, bir uyarı döndürür. IDE, kaynak kod satırının solundaki kesme noktası karakteri içine bir soru karakteri yerleştirerek yanıt verir.