4. Adım: Hata ayıklayıcıda kod çalıştırma

Önceki adım: Etkileşimli REPL penceresini kullanma

Visual Studio projeleri yönetme, zengin bir düzenleme deneyimi, Etkileşimli pencere ve Python kodu için tam özellikli hata ayıklama özellikleri sağlar. Hata ayıklayıcıda, bir döngünün her yinelemesi dahil olmak üzere kodunuzu adım adım çalıştırabilirsiniz. Ayrıca, belirli koşullar doğru olduğunda programı duraklatabilirsiniz. Program hata ayıklayıcıda duraklatıldığında herhangi bir noktada tüm program durumunu inceleyebilir ve değişkenlerin değerini değiştirebilirsiniz. Bu tür eylemler, program hatalarını izlemek için gereklidir ve aynı zamanda tam program akışını izlemek için yararlı yardımlar sağlar.

  1. PythonApplication1.py dosyasındaki kodu aşağıdaki kodla değiştirin. Kodun bu varyasyonu genişleyerek make_dot_string hata ayıklayıcıdaki ayrık adımlarını inceleyebilmenizi sağlar. Ayrıca döngü bir for işleve main yerleştirir ve bu işlevi çağırarak açıkça çalıştırır:

    from math import cos, radians
    
    # Create a string with spaces proportional to a cosine of x in degrees
    def make_dot_string(x):
        rad = radians(x)                             # cos works with radians
        numspaces = int(20 * cos(rad) + 20)          # scale to 0-40 spaces
        st = ' ' * numspaces + 'o'                   # place 'o' after the spaces
        return st
    
    def main():
        for i in range(0, 1800, 12):
            s = make_dot_string(i)
            print(s)
    
    main()
    
  2. F5 tuşuna basarak veya Hata Ayıklama Başlat>Hata Ayıklama menü komutunu seçerek kodun düzgün çalışıp çalışmadığını denetleyin. Bu komut, kodu hata ayıklayıcıda çalıştırır. Henüz, çalışırken programı duraklatmak için hiçbir şey yapılmadı, yalnızca birkaç yineleme için bir dalga deseni yazdıracak. Çıkış penceresini kapatmak için herhangi bir tuşa basın.

    İpucu

    Program tamamlandığında çıkış penceresini otomatik olarak kapatmak için Araçlar>Seçenekler menü komutunu seçin, Python düğümünü genişletin, Hata Ayıklama'yı seçin ve ardından İşlem normal şekilde çıktığında girişi bekle seçeneğini temizleyin:

    Python debugging option to close the output window on normal program exit

    Hata ayıklama ve betik ve yorumlayıcı bağımsız değişkenlerini ayarlama hakkında daha fazla bilgi için bkz . Python kodunuzda hata ayıklama.

  3. Bu satırdaki for gri kenar boşluğuna bir kez tıklayarak veya şapka işaretini bu satıra yerleştirerek ve Hata Ayıklama Kesme Noktası Hata Ayıklama>komutunu (F9) kullanarak deyimde bir kesme noktası ayarlayın. Kesme noktasını belirtmek için gri kenar boşluğunda kırmızı bir nokta görünür (aşağıdaki okta belirtildiği gibi):

    Setting a breakpoint

  4. Hata ayıklayıcıyı yeniden başlatın (F5) ve kodu çalıştırmanın bu kesme noktasıyla birlikte satırda durduğunu görün. Burada çağrı yığınını inceleyebilir ve değişkenleri inceleyebilirsiniz. Kapsam içindeki değişkenler tanımlandıkları sırada Otomatikler penceresinde görüntülenir; Visual Studio'nun tanımlanmadan önce bile geçerli kapsamda bulduğu tüm değişkenleri (işlevler dahil) göstermek için bu pencerenin alt kısmındaki Yereller görünümüne de geçebilirsiniz:

    Breakpoint UI experience for Python

  5. Visual Studio penceresinin üst kısmındaki hata ayıklama araç çubuğunu (aşağıda gösterilmiştir) gözlemleyin. Bu araç çubuğu en yaygın hata ayıklama komutlarına (Hata Ayıklama menüsünde de bulunabilir) hızlı erişim sağlar:

    Essential debugging toolbar buttons

    Soldan sağa düğmeler aşağıdaki gibi:

    Düğme Command
    Devam (F5) Programı bir sonraki kesme noktasına kadar veya program tamamlanıncaya kadar çalıştırır.
    Tümünü Kes (Ctrl+Alt+Break) Uzun süre çalışan bir programı duraklatır.
    Hata Ayıklamayı Durdur (Shift+F5) Nerede olursa olsun programı durdurur ve hata ayıklayıcıdan çıkar.
    Yeniden başlat (Ctrl+Shift+F5) Nerede olursa olsun programı durdurur ve hata ayıklayıcıda baştan başlatır.
    Sonraki Deyimi Göster (Alt+Num*) Çalıştırılacak bir sonraki kod satırına geçer. Bu, hata ayıklama oturumu sırasında kodunuzun içinde gezindiğinizde ve hata ayıklayıcının duraklatıldığı noktaya hızla dönmek istediğinizde yararlıdır.
    Adımla (F11) Çağrılan işlevlere girerek bir sonraki kod satırını çalıştırır.
    AdımLa (F10) Çağrılan işlevlere girmeden bir sonraki kod satırını çalıştırır.
    Dışarı Adımla (Shift+F11) Geçerli işlevin geri kalanını çalıştırır ve çağrı kodunda duraklatılır.
  6. Step Over komutunu kullanarak deyimin for üzerine geçin. Adımlama , hata ayıklayıcının işlev çağrıları dahil olmak üzere geçerli kod satırını çalıştırıp hemen yeniden duraklattığı anlamına gelir. Kodda değişkenin i artık Locals ve Autos pencerelerinde nasıl tanımlandığına dikkat edin.

  7. Çağıran make_dot_string ve duraklatan bir sonraki kod satırının üzerine adımlayın. Buraya Gidin , hata ayıklayıcının tamamını make_dot_string çalıştırıp döndürdüğünde duraklattığı anlamına gelir. Hata ayıklayıcı, ayrı bir kesme noktası olmadığı sürece bu işlevin içinde durmaz.

  8. Kodun üzerinde birkaç kez daha adım adım ilerleyin ve Yerel Ayarlar veya Otomatikler penceresindeki değerlerin nasıl değiştiğini gözlemleyin.

  9. Yerel Ayarlar veya Otomatikler penceresinde, değeri düzenlemek üzere veya s değişkenleri için i Değer sütununa çift tıklayın. Değişiklikleri uygulamak için Enter tuşuna basın veya bu değerin dışındaki herhangi bir alanı seçin.

  10. Adımla komutunu kullanarak kodda adım adım ilerleyin. İçine Adımı , hata ayıklayıcının gibi hata ayıklama bilgilerine make_dot_stringsahip olduğu herhangi bir işlev çağrısının içine girdiği anlamına gelir. İçeri girdikten make_dot_string sonra yerel değişkenlerini inceleyebilir ve kodunda özel olarak adım adım ilerleyebilirsiniz.

  11. Adımla adımlama işlemine devam edin ve sonuna make_dot_stringulaştığınızda bir sonraki adımın değişkendeki yeni dönüş değeriyle döngüye fors geri döndüğünü göreceksiniz. Deyimine print yeniden adım attıkça, Adımla'nınprint bu işleve girmediğini göreceksiniz. Bunun nedeni print Python'da yazılmadığı ancak Python çalışma zamanının içinde yerel bir kod olmasıdır.

  12. bölümüne yeniden girene make_dot_stringkadar Adımla seçeneğini kullanmaya devam edin. Ardından Step Out komutunu kullanın ve döngüye geri döndüğünüze for dikkat edin. Step Out ile hata ayıklayıcı işlevin geri kalanını çalıştırır ve çağrı kodunda otomatik olarak duraklatılır. Bu, uzun bir işlevin hata ayıklamak istediğiniz bir bölümünü adım adım aştığınızda yararlı olur. Geri kalanı adım adım ilerler ve arama kodunda açık bir kesme noktası ayarlamaz.

  13. Sonraki kesme noktasına ulaşılana kadar programı çalıştırmaya devam etmek için Devam 'ı (F5) kullanın. Döngüde for bir kesme noktanız olduğundan, sonraki yinelemede kesmeniz gerekir.

  14. Bir döngünün yüzlerce yinelemesinde gezinmek yorucu olabilir, bu nedenle Visual Studio kesme noktasına bir koşul eklemenize olanak tanır. Hata ayıklayıcısı daha sonra programı yalnızca koşul karşılandığında kesme noktasında duraklatır. Örneğin, yalnızca değeri i 1600'ü aştığında duraklatılması için deyiminde kesme noktası for olan bir koşul kullanabilirsiniz. Koşulu ayarlamak için kırmızı kesme noktası noktasına sağ tıklayın ve Koşullar (Alt+F9>C) öğesini seçin. Görüntülenen Kesme Noktası Ayarlar açılan penceresinde ifade olarak girin i > 1600 ve Kapat'ı seçin. Devam etmek ve programın bir sonraki kesmeden önce birçok yineleme çalıştırdığını gözlemlemek için F5 tuşuna basın.

    Setting a breakpoint condition

  15. Programı tamamlanmak üzere çalıştırmak için, kenar boşluğundaki noktaya sağ tıklayıp Kesme noktasını devre dışı bırak (Ctrl+F9) seçeneğini belirleyerek kesme noktasını devre dışı bırakın. Ardından programı çalıştırmak için Devam'ı seçin (veya F5 tuşuna basın). Program sona erdiğinde, Visual Studio hata ayıklama oturumunu durdurur ve düzenleme moduna döner. Ayrıca, kesme noktasını seçerek veya noktaya sağ tıklayıp Kesme noktasını sil'i seçerek de silebilirsiniz. Ayrıca daha önce ayarladığınız tüm koşulları da siler.

İpucu

Python yorumlayıcısını başlatma hatası gibi bazı durumlarda çıkış penceresi yalnızca kısa bir süre görüntülenebilir ve hata iletilerini görme şansı vermeden otomatik olarak kapatılabilir. Böyle bir durumda, Çözüm Gezgini'da projeye sağ tıklayın, Özellikler'i seçin, Hata Ayıkla sekmesini seçin ve yorumlayıcı Bağımsız Değişkenleri alanına ekleyin-i. Bu bağımsız değişken, bir program tamamlandıktan sonra yorumlayıcının etkileşimli moda girmesine neden olur ve böylece çıkmak için Ctrl+Z>Enter tuşuna girene kadar pencereyi açık tutar.

Sonraki adım

Daha derine git