Hata ayıklayıcıda yürütme akışını değiştirmek için yürütme işaretçisini taşıma

Hata ayıklama sırasında, yürütme işaretçisini el ile taşıyarak sonraki çalıştırılacak deyimi değiştirebilirsiniz. İşaretçinin taşınması, bilinen bir hata içeren kodu atlama gibi durumlarda kullanışlıdır ve hata ayıklayıcının daha gelişmiş bir özelliğidir.

Yürütme akışını değiştirme

Hata ayıklayıcı duraklatıldığında, kaynak kodun veya Ayrıştırma penceresinin kenar boşluğundaki sarı ok, sonraki çalıştırılacak deyimin konumunu işaretler. Bu oku taşıyarak çalıştırılacak sonraki deyimi değiştirebilirsiniz. Kodu atlayabilir veya önceki bir satıra dönebilirsiniz.

Animation that shows how to move the pointer.

Animation that shows how to move the pointer.

Çalıştırılacak sonraki deyimini değiştirmek istiyorsanız hata ayıklayıcının kesme modunda olması gerekir. Kaynak kodunda veya Ayrıştırma penceresinde sarı oku farklı bir satıra sürükleyin veya sonrakini çalıştırmak istediğiniz satıra sağ tıklayıp Sonraki Deyimi Ayarla'yı seçin.

Program sayacı doğrudan yeni konuma atlar. Eski ve yeni yürütme noktaları arasındaki yönergeler çalıştırılamaz. Ancak yürütme noktasını geriye doğru taşırsanız, aradaki yönergeler geri alınmıyor.

Dikkat

  • Sonraki deyimi başka bir işleve veya kapsama taşımak genellikle bir çalışma zamanı hatasına veya özel duruma neden olan çağrı yığını bozulmasına neden olur. Sonraki deyimi başka bir kapsama taşımaya çalışırsanız, hata ayıklayıcı size bir uyarı ve işlemi iptal etme şansı verir.
  • Visual Basic'te sonraki deyimi başka bir kapsama veya işleve taşıyamazsınız.
  • Yerel C++'da çalışma zamanı denetimleri etkinleştirildiyse, yürütme yöntemin sonuna ulaştığında bir sonraki deyimin ayarlanması özel duruma neden olabilir.
  • Düzenle ve Devam Et etkinleştirildiğinde, Düzenle ve Devam Et'in hemen yeniden eşleyemediği düzenlemeler yaptıysanız Sonraki Deyimi Ayarla başarısız olur. Bu durum, örneğin bir catch bloğunda kod düzenlediyseniz oluşabilir. Bu durumda, bir hata iletisi işlemin desteklenmediğini bildirir.
  • Yönetilen kodda, aşağıdaki durumlarda sonraki deyimi taşıyamazsınız:
    • Sonraki deyim geçerli deyimden farklı bir yöntemdedir.
    • Hata ayıklama, Tam Zamanında hata ayıklama tarafından başlatıldı.
    • Bir çağrı yığınını geri sarma işlemi devam ediyor.
    • System.StackOverflowException veya System.Threading.ThreadAbortException özel durumu oluşturuldu.