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.
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ü birfor
işlevemain
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()
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:
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.
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):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:
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:
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. 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şkenini
artık Locals ve Autos pencerelerinde nasıl tanımlandığına dikkat edin.Ç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.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.
Yerel Ayarlar veya Otomatikler penceresinde, değeri düzenlemek üzere veya
s
değişkenleri içini
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.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_string
sahip olduğu herhangi bir işlev çağrısının içine girdiği anlamına gelir. İçeri girdiktenmake_dot_string
sonra yerel değişkenlerini inceleyebilir ve kodunda özel olarak adım adım ilerleyebilirsiniz.Adımla adımlama işlemine devam edin ve sonuna
make_dot_string
ulaştığınızda bir sonraki adımın değişkendeki yeni dönüş değeriyle döngüyefor
s
geri döndüğünü göreceksiniz. Deyimineprint
yeniden adım attıkça, Adımla'nınprint
bu işleve girmediğini göreceksiniz. Bunun nedeniprint
Python'da yazılmadığı ancak Python çalışma zamanının içinde yerel bir kod olmasıdır.bölümüne yeniden girene
make_dot_string
kadar Adımla seçeneğini kullanmaya devam edin. Ardından Step Out komutunu kullanın ve döngüye geri döndüğünüzefor
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.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.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 girini > 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.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
- Hata ayıklama
- Visual Studio'da hata ayıklama, Visual Studio'nun hata ayıklama özelliklerinin tam belgelerini sağlar.