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.
Bir program başlatıldıktan sonra hata ayıklama oturumu, hata ayıklama altyapısını (DE) söz konusu programa eklemeye hazır olur.
Tasarım kararları
Paylaşılan adres alanı içinde iletişim daha kolay olduğundan, iki tasarım yaklaşımı arasından seçim yapmanız gerekir: hata ayıklama oturumu ile DE arasındaki iletişimi ayarlama. Alternatif olarak, DE ile program arasındaki iletişimi de ayarlayabilirsiniz. Aşağıdakilerden birini seçin:
Hata ayıklama oturumu ile DE arasındaki iletişimi ayarlamak daha mantıklıysa, hata ayıklama oturumu DE'yi birlikte oluşturur ve DE'den programa eklemesini ister. Bu tasarım, hata ayıklama oturumunu ve DE'yi bir adres alanında, çalışma zamanı ortamını ve programını da başka bir adres alanında bir arada bırakır.
DE ile program arasındaki iletişimi ayarlamak daha mantıklıysa, çalışma zamanı ortamı DE'nin oluşturulmasına katkıda bulunur. Bu tasarım, SDM'yi bir adres alanında bırakırken, DE, çalışma zamanı ortamı ve programı başka bir adres alanında bırakır. Bu tasarım, betik dillerini çalıştırmak için bir yorumlayıcı ile uygulanan bir DE'ye özgüdür.
Uyarı
DE'nin programa ekleme şekli uygulamaya bağımlıdır. DE ile program arasındaki iletişim de uygulamaya bağlıdır.
Implementation
Program aracılığıyla, oturum hata ayıklama yöneticisi (SDM), başlatılacak programı temsil eden IDebugProgram2 nesnesini ilk aldığında, Attach yöntemini çağırır. Bu yönteme, daha sonra hata ayıklama olaylarını SDM'ye geri iletmek için kullanılan bir IDebugEventCallback2 nesnesi aktarılır. Yöntemi IDebugProgram2::Attach daha sonra OnAttach yöntemini çağırır. SDM'nin IDebugProgram2 arabirimini nasıl aldığı üzerine daha fazla bilgi için bkz. Bağlantı noktasına bildirim.
DE'nizin hata ayıkladığınız programla aynı adres alanında çalışması gerekiyorsa: DE genellikle betik çalıştıran bir yorumlayıcının parçası olduğundan, IDebugProgramNodeAttach2::OnAttach yöntemi döndürür S_FALSE. dönen değer, S_FALSE ekleme işleminin tamamlandığını belirtir.
Ancak DE, SDM'nin adres alanında çalışıyorsa: IDebugProgramNodeAttach2::OnAttach yöntemi döndürür S_OKveya hata ayıkladığınız programla ilişkili IDebugProgramNode2 nesnesinde IDebugProgramNodeAttach2 arabirimi hiç uygulanmaz. Bu durumda, ekleme işlemini tamamlamak için sonunda Attach yöntemi çağrılır.
İkinci durumda, IDebugEngine2::Attach yöntemine geçirilen IDebugProgram2 nesnede GetProgramId yöntemini çağırmanız, ve bu değeri yerel program nesnesinde depolamanız, ve IDebugProgram2::GetProgramId yöntemi daha sonra bu nesnede çağrıldığında bu GUID’ü döndürmeniz gerekir.
GUID, programı çeşitli hata ayıklama bileşenlerinde benzersiz olarak tanımlamak için kullanılır.
IDebugProgramNodeAttach2::OnAttach yönteminin S_FALSE döndürmesi durumunda, programa kullanılacak GUID bu yönteme geçirilir ve yerel program nesnesinin GUID öğesini ayarlayan IDebugProgramNodeAttach2::OnAttach yöntemidir.
DE artık programa eklenmiştir ve başlangıç olaylarını göndermeye hazırdır.