Visual Studio hata ayıklayıcısını kullanarak kodda gezinme

Visual Studio hata ayıklayıcısı, bir uygulamanın durumunu incelemek ve kod adımlama olarak da bilinen yürütme akışını göstermek için kodda gezinmenize yardımcı olabilir. İncelemek istediğiniz koda hızla ulaşmak için klavye kısayollarını, hata ayıklama komutlarını, kesme noktalarını ve diğer özellikleri kullanabilirsiniz. Hata ayıklayıcı gezinti komutları ve kısayolları hakkında daha fazla bilgi edinerek uygulama sorunlarını daha hızlı ve daha kolay bulabilir ve çözebilirsiniz. Kod gezintisi ve hata ayıklama ile ilgili en yaygın klavye kısayollarının listesi için Klavye kısayolları bölümündeki Hata Ayıklama bölümüne bakın.

Not

Kodda hata ayıklamaya yeni başlıyorsanız, bu makaleyi okumadan önce mutlak yeni başlayanlar için hata ayıklama ve Hata ayıklama teknikleri ve araçları okumak isteyebilirsiniz.

Hata ayıklamayı başlatın ve kesme moduna geçin

Bazı gezinti komutları uygulamanızı başlatır ve hata ayıklayıcıyı otomatik olarak ekler. Uygulamanız, gezintiyi başlatmak için kullandığınız komuta göre belirli bir kod satırında duraklatılır ve kesme moduna girersiniz (yani, uygulamanız hata ayıklayıcıda duraklatılır).

Kesme modunda işlevler, değişkenler ve nesneler bellekte kalırken uygulama yürütme askıya alınır. Hata ayıklayıcı kesme modundayken kodunuzda gezinebilirsiniz. Kesme moduna hızlı bir şekilde girmenin iki yaygın yolu vardır:

  • Bir kesme noktası ayarlayın ve uygulamanızı başlatın.

  • Belirli bir konuma veya işleve çalıştırın.

    Örneğin, Visual Studio'daki kod düzenleyicisinde İmleçte Çalıştır komutunu kullanarak uygulamayı başlatabilir, hata ayıklayıcısı ekli olarak kesme moduna geçebilirsiniz. Ardından kodda gezinmek için adım komutlarını kullanabilirsiniz.

    Animation that shows selecting Run To Cursor and then F11.

    Animation that shows selecting Run To Cursor and then F11.

Uygulamanızı başlatmak için kod adımlama komutları kullanılabilir, ancak kesme moduna girdikten sonra daha yaygın olarak kullanılır.

Bazı gezinti komutları çoğunlukla kesme modundayken (hata ayıklayıcıda duraklatılırken) kullanılır.

Hata ayıklama ve kesme modu

Kesme modundayken, kodunuzda gezinmek için çeşitli komutları kullanabilirsiniz. İhlalleri veya hataları aramak için değişkenlerin değerlerini inceleyebilirsiniz. Bazı proje türleri için, kesme modundayken uygulamada ayarlamalar da yapabilirsiniz.

Modüller ve İzleme pencereleri gibi çoğu hata ayıklayıcı penceresi yalnızca hata ayıklayıcı uygulamanıza eklendiğinde kullanılabilir. Yerel Öğeler penceresinde değişken değerlerini görüntüleme veya İzleme penceresinde ifadeleri değerlendirme gibi bazı hata ayıklayıcı özellikleri yalnızca hata ayıklayıcı duraklatıldığında (kesme modunda) kullanılabilir.

Not

Kaynak veya simge (.pdb) dosyalarının yüklü olmadığı bir koda girerseniz, hata ayıklayıcı dosyaları bulup yüklemenize yardımcı olabilecek Bir Kaynak Dosya Bulunamadı veya Bulunamadı Simgeleri sayfasını görüntüler. Bkz . Simge (.pdb) ve kaynak dosyaları belirtme. Simgeyi veya kaynak dosyaları yükleyemiyorsanız, Ayrıştırma penceresinde derleme yönergelerinde hata ayıklamaya devam edebilirsiniz.

Kod adımlama

Kod adımlama , hata ayıklayıcının eklendiği uygulama kodunuzu tek seferde bir deyimle yürütmeyi ifade eder. Hata ayıklayıcısı adım komutları, her deyimin etkilerini gözlemlemenize ve yürütme akışı hakkında daha fazla bilgi bulmanıza yardımcı olur.

Koda adımla

Hata ayıklarken her deyimi durdurmak için Hata Ayıklama>Adımı'na tıklayın veya F11'i seçin.

Hata ayıklayıcısı fiziksel satırlarda değil kod deyimlerinde adım adım ilerler. Örneğin, bir if yan tümce tek satıra yazılabilir:

int x = 42;
string s = "Not answered";
if( int x == 42) s = "Answered!";

Ancak bu satıra girdiğinizde, hata ayıklayıcı koşulu bir adım ve sonucu başka bir adım olarak ele alır. Yukarıdaki örnekte koşul true şeklindedir.

İç içe yerleştirilmiş bir işlev çağrısında, En derin iç içe yerleştirilmiş işleve adım geçin. Örneğin, gibi Func1(Func2())bir çağrıda İçine Adımla özelliğini kullanırsanız hata ayıklayıcı işlevine Func2adım atar.

İpucu

Her kod satırını çalıştırırken, değerleri görmek için değişkenlerin üzerine gelebilir veya değerlerin değişmesini izlemek için Locals ve Watch pencerelerini kullanabilirsiniz. İşlevlere adımlarken çağrı yığınını görsel olarak da izleyebilirsiniz. (Yalnızca Visual Studio Enterprise için bkz. Hata ayıklama sırasında çağrı yığınındaki yöntemleri eşleyin.)

Kodda adım adım ilerleyin ve bazı işlevleri atlayın

Hata ayıklarken işleve önem vermeyebilirsiniz. Ya da iyi test edilmiş kitaplık kodu gibi bazı kodların çalıştığını biliyor olabilirsiniz. Kod adımlarken kodu atlamak için aşağıdaki komutları kullanabilirsiniz. İşlevler çalışmaya devam eder, ancak hata ayıklayıcı bunları atlar.

Klavye komutu Hata ayıkla menü komutu Açıklama
F10 AdımLa Geçerli satır bir işlev çağrısı içeriyorsa, Step Over kodu çalıştırır ve çağrılan işlev döndürdüğünde kodun ilk satırında yürütmeyi askıya alır.
Shift+F11 Dışarı Adımla Out , kodu çalıştırmaya devam eder ve geçerli işlev döndürdüğünde yürütmeyi askıya alır. Hata ayıklayıcı geçerli işlevi atlar.

Belirli bir konuma veya işleve çalıştırma

Tam olarak hangi kodu incelemek istediğinizi veya hata ayıklamaya nereden başlamak istediğinizi bildiğinizde doğrudan belirli bir konuma veya işleve çalıştırmayı tercih edebilirsiniz.

  • Kesme noktasını yeniden kullanmak isteyebileceğinizi düşünüyorsanız kesme noktası ayarlamak en iyisidir.
  • Diğer yöntemler kolaylık sağlamak içindir ve geçici kesme noktası ayarlamaya benzer.

Kodda kesme noktasına çalıştırma

Kodunuzda basit bir kesme noktası ayarlamak için yürütmeyi askıya almak istediğiniz kod satırının yanındaki en sol kenar boşluğunu seçin. Ayrıca satırı seçip F9'a tıklayabilir, Hata Ayıklama>Kesme Noktası Aç/Kapat'ı seçebilir veya sağ tıklayıp Kesme Noktası Ekleme Kesme Noktası'nı> seçebilirsiniz. Kesme noktası, kod satırının yanındaki sol kenar boşluğunda kırmızı bir nokta olarak görünür. Hata ayıklayıcı, satırın çalıştırılmasından hemen önce yürütmeyi askıya alır.

Screenshot that shows how to set a breakpoint.

Screenshot that shows how to set a breakpoint.

Visual Studio'daki kesme noktaları, koşullu kesme noktaları ve izleme noktaları gibi zengin bir işlev kümesi sağlar. Ayrıntılar için bkz . Kesme noktalarını kullanma.

İşlev kesme noktasına çalıştırma

Hata ayıklayıcıyı belirtilen işleve ulaşana kadar çalışacak şekilde ayarlayabilirsiniz. İşlevi ada göre belirtebilir veya çağrı yığınından seçebilirsiniz.

Ada göre bir işlev kesme noktası belirtmek için:

  1. Yeni Kesme Noktası İşlevi Kesme Noktası> Hatalarını Ayıkla'ya>tıklayın.

  2. Yeni İşlev Kesme Noktası iletişim kutusunda işlevin adını girin ve dilini seçin:

    Screenshot that shows the New Function Breakpoint dialog.

    Screenshot that shows the New Function Breakpoint dialog.

  3. Tamam'ı seçin.

İşlev aşırı yüklenmişse veya birden fazla ad alanındaysa Kesme Noktaları penceresinde istediğiniz ad alanını seçebilirsiniz:

Screenshot that shows breakpoints window.

Screenshot that shows breakpoints window.

Çağrı yığınından bir işlev kesme noktası seçmek için:

  1. Hata ayıklama sırasında Windows>Çağrı YığınındaHata Ayıkla'yı>seçerek Çağrı Yığını penceresini açın.

  2. Çağrı Yığını penceresinde bir işleve sağ tıklayın ve İmleçte Çalıştır'ı veya Ctrl+F10'u seçin.

Çağrı yığınını görsel olarak izleme hakkında bilgi için bkz . Hata ayıklama sırasında çağrı yığınındaki yöntemleri eşleme.

İmleç konumuna çalıştırma

İmleç konumuna gitmek için kaynak kodunda veya Çağrı Yığını penceresinde kesmek istediğiniz satırı seçin ve sağ tıklayıp İmleçte Çalıştır'ı seçin veya Ctrl+F10'u seçin. İmleçte Çalıştır'ın seçilmesi, geçici bir kesme noktası ayarlamaya benzer.

Çalıştırmayı imleç konumuna zorlama

İmleç konumuna gitmek için kaynak kodunda veya Çağrı Yığını penceresinde, kesmek istediğiniz satırı seçin ve sağ tıklayıp Çalıştırmayı İmleçle Zorla'yı seçin. hata ayıklayıcı imlecin bulunduğu kod satırına ulaşana kadar, İmleçte Çalıştırmaya Zorla seçildiğinde kesme noktaları ve ilk şans özel durumları atlanır.

Tıklamak için çalıştır

Hata ayıklayıcı duraklatılırken kaynak koddaki veya Ayrıştırma penceresindeki bir deyimin üzerine gelebilir ve Yürütmeyi buradan çalıştır yeşil okunu seçebilirsiniz. Tıklatılacak Çalıştır'ı kullanmak, geçici bir kesme noktası ayarlamaya benzer.

Screenshot that shows Run to Click and the green arrow.

Not

Tıkla çalıştır özelliği Visual Studio 2017'den itibaren kullanılabilir.

Çalıştırmayı tıklamaya zorla

Hata ayıklayıcı duraklatılırken, Shift tuşuna basarken kaynak kodundaki bir deyimin üzerine gelebilir ve ardından Yürütmeyi buraya çalıştırmaya zorla 'yı (çift yeşil ok) seçebilirsiniz. Bu seçeneği belirlediğinizde, uygulama Visual Studio hata ayıklayıcısını ekler ve imleç konumunda duraklatılır. Yürütme sırasında bulunan kesme noktaları ve ilk şans özel durumları geçici olarak devre dışı bırakılır.

Screenshot that shows Force Run to Click.

Not

Tıklamaya Zorla, Visual Studio 2022'den itibaren kullanılabilir.

Koda el ile bölme

Çalışan bir uygulamada bir sonraki kullanılabilir kod satırına girmek için Hata Ayıklama>Tümünü Kes'i veya Ctrl+Alt+Break'i seçin.

Kullanıcı dışı kodda hata ayıklama

Varsayılan olarak, hata ayıklayıcı Yalnızca Kodum adlı bir ayarı etkinleştirerek yalnızca uygulama kodunuzda hata ayıklamayı dener. Bu özelliğin çeşitli proje türleri ve dillerinde nasıl çalıştığı ve nasıl özelleştirebileceğiniz hakkında ayrıntılı bilgi için bkz . Yalnızca Kodum.

Hata ayıklama sırasında çerçeve koduna, üçüncü taraf kitaplık koduna veya sistem çağrılarına bakmak için Yalnızca Kodum'un devre dışı bırakabilirsiniz. Araçlar (veya Hata Ayıklama) >Seçenekleri>Hata Ayıklama'da Yalnızca Kodumu Etkinleştir onay kutusunu temizleyin. Yalnızca Benim Kodum devre dışı bırakıldığında, hata ayıklayıcı pencerelerinde kullanıcı dışı kod görünür ve hata ayıklayıcı kullanıcı olmayan koda adım atabilir.

Not

Cihaz projeleri için Yalnızca Kodum desteklenmez.

Sistem kodunda hata ayıklama

Microsoft sistem kodu için hata ayıklama sembolleri yüklediyseniz ve Yalnızca Benim Kodum'u devre dışı bırakmışsanız, diğer tüm çağrılarda olduğu gibi bir sistem çağrısına da adım atabilirsiniz.

Visual Studio 2022 sürüm 17.7'den başlayarak, hata ayıklama simgelerini el ile yüklemenize gerek kalmadan dış koda adımlarken .NET kodunu otomatik olarak derleyebilirsiniz. Daha fazla bilgi için bkz . Hata ayıklama sırasında .NET derlemelerinden kaynak kodu oluşturma.

Microsoft sembollerini yükleme hakkında bilgi edinmek için bkz . Sembol dosyalarının konumunu ve yükleme seçeneklerini yapılandırma.

Belirli bir sistem bileşeninin simgelerini yüklemek için:

  1. Hata ayıklarken, Windows>Modüllerinde Hata Ayıkla'yı>seçerek veya Ctrl+Alt+U tuşlarına basarak Modüller penceresini açın.

  2. Modüller penceresinde, Sembol Durumu sütununda hangi modüllerin sembollerin yüklü olduğunu anlayabilirsiniz. Simgeleri yüklemek istediğiniz modüle sağ tıklayın ve Ardından Simgeleri Yükle'yi seçin.

Yönetilen koddaki özelliklere ve işleçlere adım atma

Hata ayıklayıcı varsayılan olarak yönetilen koddaki özellikler ve işleçler üzerinde adım atar. Çoğu durumda, bu davranış daha iyi bir hata ayıklama deneyimi sağlar. Özelliklere veya işleçlere adımı devre dışı bırakmak için Hata Ayıklama>Seçenekleri'ni seçin. Hata Ayıklama>Genel sayfasında Özellikler ve işleçler üzerinde adım at (Yalnızca yönetilen) onay kutusunu temizleyin.

Yürütme akışını değiştirmek için işaretçiyi taşıma

Sarı yürütme işaretçisini taşıyarak çalıştırılacak sonraki deyimi değiştirebilirsiniz. Bu özelliği kesme modundayken kullanabilirsiniz.

Bu gelişmiş bir hata ayıklayıcı özelliğidir. Daha fazla bilgi için bkz . Yürütme işaretçisini taşıma.