Aracılığıyla paylaş


Temel hata ayıklama: kesme noktaları

A kesme belirli bir noktada programınızın çalışmasını geçici olarak askıya almak için hata ayıklayıcı belirten bir sinyal.Kesme noktasında yürütme askıya alındığında programınız kesme modunda olduğu söylenir.Kesme moduna girme değil durdurmak veya programın yürütülmesini bitirmek; herhangi bir anda yürütülmesine devam ettirilebilir.

Kesme modu gibi bir zaman aşımı olarak düşünebilirsiniz.Tüm öğeleri kalır (İşlevler, değişkenlerin ve nesnelerin kalır bellekte, örneğin), ancak kendi hareketleri ve faaliyetleri askıya alındı.BREAK modunda öğeler pozisyonları ve ihlalleri veya hataların aramak için durumları inceleyebilirsiniz.Break modunda program ayarlamaları da yapabilirsiniz; Örneğin, bir değişkenin değerini değiştirebilirsiniz.Yürütme devam ettiğinde yürütülecek sonraki deyimi değiştirir yürütme noktasını taşıyabilirsiniz.C++, C# ve Visual Basic, kendisini break modunda kod adlı güçlü bir özellik düzenleme'yi kullanarak ve devam bile değiştirebilirsiniz.

Kesme noktalarını askıya yürütülmesine olanak sağlayan güçlü bir araç sağlar nerede ve ne zaman gerek.Satır satır veya yönerge tarafından yönerge kodu stepping yerine program bir kesme noktasına rastlayıncaya kadar çalışmasına izin ve hata ayıklama başlatın.Bu hata ayıklama işlemini hızlandırır.Bu yeteneği olmadan büyük bir programda hata ayıklamak neredeyse imkansız olurdu.

Çoğu programlama dili deyimleri veya yürütme askıya almak ve programınızı kesme moduna yapıları vardır.Örneğin, Visual Basic sahip Stop ifadesi.Kesme programınıza eklenecek olan gerçek kaynak kodunu değil, çünkü bu deyimlerinden kesme noktaları farklıdır.Bir kesme noktası deyimi kaynak penceresine yazmayın.Kesme hata ayıklayıcı arabirimi üzerinden istek ve hata ayıklayıcı bunu sizin yerinize ayarlar.Satır kesme noktası eklemek için kesme noktası ayarlamak istediğiniz yerde gri kenar boşluğunda satırının yanındaki Ek Yardım düğmesini tıklatın.Daha karmaşık kesme bir tam özellikli işlenecek kesme pencere.

Kesme hata ayıklama Visual Basic gibi yapılar birçok avantajları olanStop ifadesi.Kesme silinen veya değiştirilen program kaynak kodunu değiştirmek zorunda kalmadan.Kesme noktaları deyimleri değildir çünkü programınızın sürümünü oluşturduğunuzda bunlar hiçbir zaman fazladan kod üretir.Kullanırsanız, Stop ifadeleri programınızda, el ile olanlar kaldırmanız gerekir Stop ifadeleri sürümünü oluşturmak veya bilgi almak için aşağıda gösterildiği gibi kullanmalısınız:

#If DEBUG Then
    Stop
#End If

Geçici olarak devre dışı bırakmak istiyorsanız, bir Stop deyimi, kaynak kodunuzu ifadesini bulun ve onu dışarı yorum:

 ' Stop

Yalnızca varsa bu sorun olabilir Stop ifadesi.Ancak, sahip çok büyük bir program hata ayıklama, Stop tüm deyimleri aramak ve her bir çıkış zaman alıcı olabilir yorum oluşturma deyimleri.Kesme noktalarını kullanarak seçebilir ve devre dışı bırakmak veya herhangi birini veya tümünü kesme noktalarını etkinleştir kesme pencere.

Son olarak, kesme noktaları üzerinden büyük bir avantajı vardır Stop kendilerine esneklik deyimler.A Stop deyimi yürütme deyimini bulunduğu kaynak satır sonu neden olur.Aynı şeyi yapar kaynak satırda bir kesme noktası ayarlayabilirsiniz.Alternatif olarak, ayrıca bir kesme noktası bir işlev veya bir bellek adresi ile yapılamaz ayarlayabilirsiniz Stop deyimleri.Bu konum kesme noktaları yanı sıra Visual Studio debugger yerel kodu için veri kesme noktaları sunar.Bir konum kodu yerine global veya yerel bir değişken veri kesme noktası ayarlanır.Bu değişken değeri değiştiğinde ayırmak yürütme veri kesme noktası ayarlamak neden olur.

Daha fazla esneklik sağlamak için Visual Studio debugger kesme noktası davranışını değiştirme özelliklerini ayarlamanızı sağlar:

  • Ziyaret sayısı , kaç kez kesme noktasını belirlemek için isabet önce hata ayıklayıcıyı etkinleştirir yürütme sonu.Varsayılan olarak, hata ayıklayıcı yürütme kesme noktasına gelindiğinde her zaman keser.Hata ayıklayıcı, kesme noktasına gelindiğinde, her iki kez kesmek söylemek için bir isabet sayısı veya her 10 kez veya her 512 kez veya seçtiğiniz herhangi bir sayı olarak ayarlayabilirsiniz.Ziyaretçi, programınızı bir döngü yürütür ilk kez çağıran bir işlev veya değişken erişir bazı hataların görünmediği için yararlı olabilir.Bazen, hata kadar 100th veya 1000th yineleme görünmeyebilir.Böyle bir sorun hata ayıklamak için 100 veya 1000 vuruş sayısı ile bir kesme noktası ayarlayabilirsiniz.

  • Koşul kesme isabet atladı mı belirler bir ifadesidir.Hata ayıklayıcı, kesme noktasına ulaştığında, koşulu değerlendirir.Koşul gerçekleştiyse kesme isabet.Yalnızca belirli bir koşul doğru olduğunda belirtilen konumda durdurmak için bir konum kesme noktası ile bir koşulu kullanabilirsiniz.Örneğin, burada hesap bakiyesi Sıfırın altına Git belirlenmez bankacılık program hata ayıklama varsayalım.Ve kesme belirli konumlarda kod gibi bir koşul eklemek balance < 0 her biri için.Programı çalıştırdığınızda, yalnızca bakiyesi olan küçüktür, sıfır yürütme bu konumlarda çalışmamasına neden olur.Değişkenler ve program durumunu ilk kesme noktası konumunda inceleyin ve sonra ikinci kesme noktası konumuna yürütülmesine devam etmek ve benzeri.

  • Eylem bir şey kesme noktasına gelindiğinde yapılacağını belirtir.Varsayılan olarak, hata ayıklayıcı yürütme sonu ancak iletiyi yazdırmak veya bunun yerine Visual Studio makro çalıştırmak seçebilirsiniz.Bölme yerine bir ileti yazdırmaya karar verdiniz, kesme noktası bir çok benzer etkisi bir Trace ifadesi.Bu yöntemi kullanarak kesme tracepoints denir.

  • Filtre bir işlem veya iş parçacığı için kesme noktası belirtmenizi sağlar.

    [!NOT]

    Özellikle yararlı bir yöntem ayarlama kesme Call Stack pencere.Kullanarak Call Stack penceresinde, ayarlayabileceğiniz bir kesme noktası üzerinde belirli bir işlev çağrısı.Kendi kendini çağıran bir işlev yinelemeli işlevin ayıklarken bu kullanışlı olabilir.Yürütme sonrasında çağrılar belirli sayıda bölerseniz, kullanabileceğiniz Call Stack pencere değil henüz verdi önceki çağrıda bir kesme noktası ayarlamak için.Hata ayıklayıcı, kesme ve kesme yürütülmesine dışına geçerli aramaları karşılaşırsınız.

Ayrıca bkz.

Görevler

Nasıl yapılır: kesme noktaları pencere kullanın

Diğer Kaynaklar

Breakpoints and Tracepoints

Hata ayıklayıcı Yol Haritası

Breakpoints