Aracılığıyla paylaş


Program başlatma

Bir programda hata ayıklamak isteyen kullanıcılar, hata ayıklayıcıyı IDE'den çalıştırmak için F5 tuşuna basabilir. Bu, IDE'nin bir hata ayıklama motoruna (DE) bağlanmasıyla başlayan ve DE üzerinden programa bağlanmasıyla sonuçlanan bir dizi olayı başlatır:

  1. IDE, çözümün etkin proje hata ayıklama ayarlarını almak için önce proje paketini çağırır. Ayarlar başlangıç dizinini, ortam değişkenlerini, programın çalıştırılacağı bağlantı noktasını ve belirtildiyse programı oluşturmak için kullanılacak DE'yi içerir. Bu ayarlar hata ayıklama paketine geçirilir.

  2. Belirli bir DE belirtilirse, DE programı başlatmak için işletim sistemini çağırır. Programın başlatılmasının bir sonucu olarak, programın çalışma zamanı ortamı yüklenir. Örneğin, bir program MSIL'de yazılmışsa, programı çalıştırmak için ortak dil çalışma zamanı çağrılır.

    -veya-

    DE belirtilmezse, bağlantı noktası programı başlatmak için işletim sistemini çağırır ve bu da programın çalışma zamanı ortamının yüklenmesine neden olur.

    Uyarı

    Program başlatmak için bir DE kullanılıyorsa, büyük olasılıkla aynı DE programa eklenecektir.

  3. DE veya bağlantı noktasının programı başlatıp başlatmadığına bağlı olarak, DE veya çalışma zamanı ortamı bir program açıklaması veya düğümü oluşturur ve bağlantı noktasına programın çalıştığını bildirir.

    Uyarı

    Program düğümü, hata ayıklanabilir bir programın basit bir gösterimi olduğundan, çalışma zamanı ortamının program düğümünü oluşturması önerilir. Yalnızca bir program düğümü oluşturup kaydetmek için tüm DE'yi yüklemenize gerek yoktur. DE, IDE işleminde çalışacak şekilde tasarlanmışsa ancak gerçekte IDE çalışmıyorsa, bağlantı noktasına program düğümü ekleyebilen bir bileşen olması gerekir.

    Yeni oluşturulan program, ilgili veya ilişkisiz, aynı IDE'den başlatılan veya eklenen diğer tüm programlarla birlikte bir hata ayıklama oturumu oluşturur.

    Program aracılığıyla, kullanıcı F5'e ilk kez bastığında, Visual Studio'nun hata ayıklama paketi proje paketini (başlatılmakta olan program türüyle ilişkili) yöntemi aracılığıyla DebugLaunch çağırır ve bu da çözümün etkin proje hata ayıklama ayarlarıyla bir VsDebugTargetInfo2 yapıyı doldurur. Bu yapı, LaunchDebugTargets2 yöntemine yapılan bir çağrı ile hata ayıklama paketine geri iletilir. Ardından hata ayıklama paketi, hata ayıklanan programı ve ilişkili hata ayıklama altyapılarını başlatan oturum hata ayıklama yöneticisinin (SDM) örneğini oluşturur.

    SDM'ye geçirilen bağımsız değişkenlerden biri, programı başlatmak için kullanılacak DE'nin GUID değeridir.

    DE GUID değilse GUID_NULL, SDM DE'yi birlikte oluşturur ve programı başlatmak için LaunchSuspended yöntemini çağırır. Örneğin, bir program yerel kodda yazılmışsa, IDebugEngineLaunch2::LaunchSuspended büyük olasılıkla programı çalıştırmak için ve CreateProcess (Win32 işlevleri) çağırırResumeThread.

    Programın başlatılmasının bir sonucu olarak, programın çalışma zamanı ortamı yüklenir. DE veya çalışma zamanı ortamı daha sonra programı açıklamak için bir IDebugProgramNode2 arabirimi oluşturur ve programın çalıştığını porta bildirmek için bu arabirimi AddProgramNode'a geçirir.

    Eğer GUID_NULL geçirilirse, bağlantı noktası programı başlatır. Program çalışmaya başladığında, çalışma zamanı ortamı programı tanımlamak için bir IDebugProgramNode2 arabirimi oluşturur ve bunu IDebugPortNotify2::AddProgramNode'ye geçirir. Bu, bağlantı noktasına programın çalıştığını bildirir. Ardından SDM, hata ayıklama altyapısını çalışan programa ekler.

Bu bölümde

Bağlantı noktası bildirildiğinde , bir program başlatıldıktan ve bağlantı noktası bildirildikten sonra ne olacağı açıklanır.

Hata ayıklama oturumu DE'yi programa eklemeye hazır olduğunda başlatma belgelerinden sonra ekleme.

  • Hata ayıklama görevleri , program başlatma ve ifadeleri değerlendirme gibi çeşitli hata ayıklama görevlerine bağlantılar içerir.