Birden çok işlemde hata ayıklama (C#, Visual Basic, C++)

Visual Studio, çeşitli işlemleri olan bir çözümün hatalarını ayıklayabilir. İşlemleri başlatabilir ve bunlar arasında geçiş yapabilir, kaynakta ilerleyebilir, hata ayıklamayı durdurabilir ve işlemleri ayrı ayrı sonlandırabilir veya ayırabilirsiniz.

Birden çok işlemle hata ayıklamaya başlama

Visual Studio çözümünde birden fazla proje bağımsız olarak çalıştırılabilirse, hata ayıklayıcının başlatıldığı projeyi seçebilirsiniz. Geçerli başlangıç projesi Çözüm Gezgini kalın olarak görüntülenir.

Başlangıç projesini değiştirmek için, Çözüm Gezgini farklı bir projeye sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin.

Bir projenin hata ayıklamasını başlangıç projesi yapmadan Çözüm Gezgini başlatmak için projeye sağ tıklayın ve Hata Ayıklama>Yeni örneği başlat veya Yeni örneğe adım at'ı seçin.

Başlangıç projesini veya çözüm Özelliklerinden birden çok projeyi ayarlamak için:

  1. Çözüm Gezgini'de çözümü seçin ve araç çubuğunda Özellikler simgesini seçin veya çözüme sağ tıklayıp Özellikler'i seçin.

  2. Özellikler sayfasında Ortak Özellikler Başlangıç Projesi'ni> seçin.

    Changing the startup type for a project

  3. Geçerli seçim, Tek başlangıç projesi ve proje dosyası veya Birden çok başlangıç projesi seçin.

    Birden çok başlangıç projesi'ni seçerseniz, başlangıç sırasını ve eylemi her proje için gerçekleştirecek şekilde değiştirebilirsiniz: Başlat, Hata ayıklama olmadan başlat veya Yok.

  4. Uygula'yı veya iletişim kutusunu uygulamak ve kapatmak için Tamam'ı seçin.

İşleme ekleme

Hata ayıklayıcısı, uzak cihazlar da dahil olmak üzere Visual Studio dışındaki işlemlerde çalışan uygulamalara da eklenebilir . Bir uygulamaya ekledikten sonra Visual Studio hata ayıklayıcısını kullanabilirsiniz. Hata ayıklama özellikleri sınırlı olabilir. Uygulamanın hata ayıklama bilgileriyle derlenip derlenmediğine, uygulamanın kaynak koduna erişiminiz olup olmadığına ve JIT derleyicisinin hata ayıklama bilgilerini izlediğine bağlıdır.

Daha fazla bilgi için bkz . Çalışan işlemlere ekleme.

Çalışan bir işleme eklemek için:

  1. Uygulama çalışırken İşleme Ekleme Hatalarını Ayıkla'yı>seçin.

    Attach to Process dialog box

  2. İşleme Ekle iletişim kutusunda, Kullanılabilir İşlemler listesinden işlemi seçin ve ardından Ekle'yi seçin.

Not

Hata ayıklayıcısı, alt proje aynı çözümde olsa bile, hata ayıklanmış bir işlem tarafından başlatılan bir alt işleme otomatik olarak eklenmez. Bir alt işlemin hatalarını ayıklamak için, alt işleme başladıktan sonra ekleyin veya Windows Kayıt Defteri Düzenleyicisi'ni yeni bir hata ayıklayıcı örneğinde alt işlemi başlatacak şekilde yapılandırın.

Hata ayıklayıcıda bir işlemi otomatik olarak başlatmak için Kayıt Defteri Düzenleyicisi'ni kullanın

Bazen, başka bir işlem tarafından başlatılan bir uygulamanın başlangıç kodunda hata ayıklamanız gerekebilir. Hizmetler ve özel kurulum eylemleri buna örnek olarak verilebilir. Hata ayıklayıcının başlatılmasını ve uygulamaya otomatik olarak eklenmesini sağlayabilirsiniz.

  1. Regedit.exe dosyasını çalıştırarak Windows Kayıt Defteri Düzenleyicisi'ni başlatın.

  2. Kayıt Defteri Düzenleyicisi'nde HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options konumuna gidin.

  3. Hata ayıklayıcıda başlatmak istediğiniz uygulamanın klasörünü seçin.

    Uygulama alt klasör olarak listelenmiyorsa Görüntü Dosyası Yürütme Seçenekleri'ne sağ tıklayın, Yeni Anahtar'ı> seçin ve uygulama adını yazın. İsterseniz ağaçtaki yeni anahtara sağ tıklayıp Yeniden Adlandır'ı seçip uygulama adını da girebilirsiniz.

  4. Ağaçtaki yeni anahtara sağ tıklayın ve Yeni Dize Değeri'ni> seçin.

  5. Yeni değerin adını Yeni Değer #1debuggerolarak değiştirin.

  6. Hata ayıklayıcıya sağ tıklayın ve Değiştir'i seçin.

    Edit String dialog box

  7. Dizeyi Düzenle iletişim kutusunda Değer verileri kutusuna yazın vsjitdebugger.exe ve Tamam'ı seçin.

    Automatic debugger start entry in regedit.exe

Birden çok işlemle hata ayıklama

Bir uygulamada birkaç işlemle hata ayıklarken hata ayıklama, adımlama ve devam eden hata ayıklayıcı komutları varsayılan olarak tüm işlemleri etkiler. Örneğin, bir işlem kesme noktasında askıya alındığında, diğer tüm işlemlerin yürütülmesi de askıya alınır. Yürütme komutlarının hedefleri üzerinde daha fazla denetim elde etmek için bu varsayılan davranışı değiştirebilirsiniz.

Bir işlem kesildiğinde tüm işlemlerin askıya alınıp alınmayacağını değiştirmek için:

  • Araçlar (veya Hata Ayıklama) >Seçenekleri>Hata Ayıklama>Genel'in altında, Bir işlem kesildiğinde tüm işlemleri kes onay kutusunu seçin veya temizleyin.

Kesme, adım ve devam komutları

Aşağıdaki tabloda, Bir işlem kesildiğinde tüm işlemleri kes onay kutusu seçildiğinde veya seçimi kaldırıldığında hata ayıklama komutlarının davranışları açıklanmaktadır:

Komut Seçili Seçimi
Hata Ayıklama>Tümünü Kesme Tüm işlemler bozulacak. Tüm işlemler bozulacak.
Hata Ayıklama Devamı> Tüm işlemler sürdürülür. Askıya alınan tüm işlemler sürdürülür.
Hata Ayıklama>Adımı: Adımla, Üzerine Adımla veya Dışarı Adımla Geçerli işlem adımları sırasında tüm işlemler çalıştırılır.
Ardından tüm işlemler bozulacak.
Geçerli işlem adımları.
Askıya alınan işlemler sürdürülür.
Çalışan işlemler devam eder.
Geçerli İşlemde Hata Ayıklama>Adımı, Geçerli İşlemin Üzerinden Geçme veya Geçerli İşlemden Çıkma Yok Geçerli işlem adımları.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).
Kaynak penceresi Kesme Noktası Tüm işlemler bozulacak. Yalnızca kaynak pencere işlemi sonları.
Kaynak penceresi İmleç için çalıştır
Kaynak pencere geçerli işlemde olmalıdır.
Kaynak pencere işlemi imleçte çalıştırılırken tüm işlemler çalıştırılır ve sonra da kesilir.
Ardından diğer tüm işlemler bozulacak.
Kaynak pencere işlemi imleç için çalışır.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).
İşlemler penceresi >Kesme İşlemi Yok Seçili işlem sonları.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).
İşlemler penceresi >İşlemi Sürdür Yok Seçili işlem sürdürülür.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).

Kaynak ve simge (.pdb) dosyalarını bulma

Bir işlemin kaynak kodunda gezinmek için hata ayıklayıcının kaynak dosyalarına ve sembol dosyalarına erişmesi gerekir. Daha fazla bilgi için bkz . Simge (.pdb) ve kaynak dosyaları belirtme.

Bir işlemin dosyalarına erişemiyorsanız Ayrıştırma penceresini kullanarak gezinebilirsiniz. Daha fazla bilgi için bkz . Nasıl yapılır: Ayrıştırma penceresini kullanma.

İşlemler arasında geçiş yapma

Hata ayıklarken birden çok işleme ekleyebilirsiniz, ancak herhangi bir zamanda hata ayıklayıcıda yalnızca bir işlem etkindir. Etkin veya geçerli işlemi Hata Ayıklama Konumu araç çubuğunda veya İşlemler penceresinde ayarlayabilirsiniz. İşlemler arasında geçiş yapmak için her iki işlemin de kesme modunda olması gerekir.

Hata Ayıklama Konumu araç çubuğundan geçerli işlemi ayarlamak için:

  1. Hata Ayıklama Konumu araç çubuğunu açmak için Araç Çubuklarını>Görüntüle>Hata Ayıklama Konumu'nu seçin.

  2. Hata ayıklama sırasında, Hata Ayıklama Konumu araç çubuğunda İşlem açılan listesinden geçerli işlem olarak ayarlamak istediğiniz işlemi seçin.

    Switch between processes

İşlemler penceresinden geçerli işlemi ayarlamak için:

  1. İşlemler penceresini açmak için hata ayıklarken Windows>İşlemlerinde Hata Ayıkla'yı>seçin.

  2. İşlemler penceresinde geçerli işlem sarı bir okla işaretlenir. Geçerli işlem olarak ayarlamak istediğiniz işleme çift tıklayın.

    Processes window

Bir işleme geçiş yapmak, hata ayıklama amacıyla geçerli işlem olarak ayarlar. Hata ayıklayıcı pencereleri geçerli işlemin durumunu gösterir ve adımlama komutları yalnızca geçerli işlemi etkiler.

Birden çok işlemle hata ayıklamayı durdurma

Varsayılan olarak Hata AyıklamaYı Durdur Hata Ayıklama'yı> seçtiğinizde hata ayıklayıcı sona erer veya tüm işlemlerden ayrılır.

  • Geçerli işlem hata ayıklayıcıda başlatıldıysa işlem sonlandırılır.

  • Hata ayıklayıcıyı geçerli işleme eklediyseniz, hata ayıklayıcı işlemden ayrılır ve işlemi çalışır durumda bırakır.

Visual Studio çözümünden bir işlemde hata ayıklamaya başlarsanız, zaten çalışmakta olan başka bir işleme ekleyin ve hata ayıklamayı durdur'u seçin, hata ayıklama oturumu sona erer. Visual Studio'da başlatılan işlem sona ererken, eklediğiniz işlem çalışmaya devam eder.

Hata Ayıklamayı Durdur'un tek bir işlemi nasıl etkileyeceğini denetlemek için İşlemler penceresinde bir işleme sağ tıklayın ve hata ayıklama durdurulduğunda ayır onay kutusunu seçin veya temizleyin.

Not

Bir işlem hata ayıklayıcıyı kestiğinde tüm işlemleri kes seçeneği işlemleri durdurmayı, sonlandırmayı veya işlemlerden ayırmayı etkilemez.

Komutları durdurma, sonlandırma ve ayırma

Aşağıdaki tabloda, birden çok işlemle hata ayıklayıcı durdurma, sonlandırma ve ayırma komutlarının davranışları açıklanmaktadır:

Komut Açıklama
Hata Ayıklama>Hata Ayıklamayı Durdur İşlemler penceresinde davranış değiştirilmediği sürece, hata ayıklayıcısı tarafından başlatılan işlemler sonlandırılır ve ekli işlemler ayrılır.
Hata Ayıklama>Tümünü Sonlandır Tüm işlemler sonlandırılır.
Tümünü Ayır hata ayıklama> Hata ayıklayıcı tüm işlemlerden ayrılır.
İşlemler penceresi >Ayırma İşlemi Hata ayıklayıcı seçilen işlemden ayrılır.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).
İşlemler penceresi >İşlemi Sonlandır Seçili işlem sonlandırılır.
Diğer işlemler mevcut durumlarını korur (askıya alınır veya çalışır durumdadır).
Hata ayıklama durduğunda işlemler penceresi >ayırma Seçiliyse Hata Ayıklama>Hata Ayıklamayı Durdur seçili işlemden ayrılır.
Seçili değilse Hata Ayıklama>Hata Ayıklamayı Durdur seçili işlemi sonlandırır.