Visual Studio'da GitHub Copilot ile uygulamanızda hata ayıklama

Bu makalede, GitHub Copilot kullanarak daha verimli bir şekilde hata ayıklamayı öğreneceksiniz. Copilot, kod düzeltmelerinin yanı sıra ayrıntılı analiz ve kodun nasıl çalıştığına ilişkin açıklamalar sağlayabilir. Hatalar için önerilen düzeltmelere yardımcı olur ve özel durumlar gibi şeyleri açıklar. Copilot çağrı yığınlarını, çerçeveleri, değişken adlarını ve değerleri anlar. Sonuç olarak, kodunuzla ilgili ayrıntılı sorular sormak ve genel olarak hata ayıklama sorunları için hata ayıklayıcı kullanan yapay zeka ile etkileşim kurabilirsiniz.

Ayrıca Copilot, istisnalar gibi belirli senaryolar ve AI ile geliştirilmiş hata ayıklama senaryoları içinde açıklanan tüm durumlar için daha kesin yardım sağlar. Bu senaryoların çoğunda, Ask CopilotAsk Copilot düğmesinin ekran görüntüsü. veya Copilot ile Analiz Et düğmesine bakın. Bu senaryolarda, Copilot sorularınızın bağlamını zaten biliyordur.

Visual Studio'da GitHub Copilot Tamamlamaları hakkında daha fazla bilgi için bkz. Visual Studio GitHub Copilot Tamamlamaları Hakkında.

Önkoşullar

Başlamak için şunları yapmanız gerekir:

Yapay zeka ile geliştirilmiş senaryolar

Copilot çağrı yığınlarını, çerçeveleri, değişken adlarını ve değerleri anlar. Sonuç olarak, kodunuzla ilgili ayrıntılı sorular sormak ve genel olarak hata ayıklama sorunları için hata ayıklayıcı kullanan yapay zeka ile etkileşim kurabilirsiniz.

Ayrıca, Copilot aşağıdaki tabloda açıklananlar gibi bazı hedeflenen senaryolar için daha hassas yardım sağlar.

Özellik veya senaryo Bağlantı
Hata Ayıklayıcı Aracısı Bu makalede Hata Ayıklayıcı Aracısı ile Agentic hata çözümlemesini inceleyin. Uçtan uca etkin iş akışı; hataları yeniden oluşturur, uygulamanızı yapılandırır ve canlı çalışma zamanı verilerini kullanarak düzeltmeleri doğrular.
Çağrı yığını analizi Bkz. Copilot ile çağrı yığınını analiz etme. Zaman uyumsuz akış açıklamaları da dahil olmak üzere iş parçacığınızın ne yaptığını tek tıklamayla analiz edin.
Özel durum Bu makaledeki Copilot ile özel durum oluşturma bölümüne bakın. İstisnalarla ilgili yardım, kilitlenme algılama hatalarıyla ilgili yardım içerir.
Değişken Bkz. Yapay zeka yardımı alma.
LINQ sorgu analizi Dönüş değerini görmek için kod düzenleyicisinde hata ayıklarken LINQ sorgularının üzerine gelin. Yapay zeka yardımı için Analyze with Copilot düğmesini seçin. Bkz. LINQ sorgularının dönüş değerlerini görüntüleme.
Veri ipuçları Yapay zeka yardımı almak için veri ipuçlarıbakın.
Koşullu kesme noktaları ve izleme noktaları Bu makalede koşullu kesme noktaları ve izleme noktalarıyla ilgili öneriler alma konusunda bakın.
Hızlı İşlemler (ampul) Bakın, Hızlı İşlemlerile yapay zeka yardımı alın.
IEnumerable tablo görselleştiricisi Bkz. Yapay zeka yardımı alma.
Metin Görselleştiricisi'nde otomatik algılama ve biçimlendirme Bkz. Otomatik algılama ve biçimlendirme. Copilot, kodlanmış veya sıkıştırılmış dizeleri otomatik olarak tanımlar ve bunları tek bir tıklamayla çözer.
Satır içi dönüş değerleri bkz. yöntem çağrılarının dönüş değerlerini görüntüleme.
Satır içi değerler Bkz. Satır içi değerleri görüntüleme.
Çok iş parçacıklı hata ayıklama Bkz. Konular görünümüyle yapay zeka yardımı alın.
Birim testi Bkz. Testlerde hata ayıklamak için yapay zeka yardımı alma
Depo bağlamıyla istisnaları incele Bkz. Depo bağlamı ile yapay zeka yardımı alma
Kesme noktalarıyla ilgili sorunları giderme Bkz. Yapay zeka yardımı alma.
Özellik veya senaryo Bağlantı
Çağrı yığını analizi Bkz. Copilot ile çağrı yığınını analiz etme. Zaman uyumsuz akış açıklamaları da dahil olmak üzere iş parçacığınızın ne yaptığını tek tıklamayla analiz edin.
Özel durum Bu makaledeki Copilot ile özel durum oluşturma bölümüne bakın. İstisnalarla ilgili yardım, kilitlenme algılama hatalarıyla ilgili yardım içerir.
Değişken Bkz. Yapay zeka yardımı alma.
LINQ sorgu analizi Dönüş değerini görmek için kod düzenleyicisinde hata ayıklarken LINQ sorgularının üzerine gelin. Yapay zeka yardımı için Analyze with Copilot düğmesini seçin. Bkz. LINQ sorgularının dönüş değerlerini görüntüleme.
Veri ipuçları Yapay zeka yardımı almak için veri ipuçlarıbakın.
Koşullu kesme noktaları ve izleme noktaları Bu makalede koşullu kesme noktaları ve izleme noktalarıyla ilgili öneriler alma konusunda bakın.
Hızlı İşlemler (ampul) Bakın, Hızlı İşlemlerile yapay zeka yardımı alın.
IEnumerable tablo görselleştiricisi Bkz. Yapay zeka yardımı alma.
Satır içi dönüş değerleri bkz. yöntem çağrılarının dönüş değerlerini görüntüleme.
Satır içi değerler Bkz. Satır içi değerleri görüntüleme.
Çok iş parçacıklı hata ayıklama Bkz. Konular görünümüyle yapay zeka yardımı alın.
Birim testi Bkz. Testlerde hata ayıklamak için yapay zeka yardımı alma
Depo bağlamıyla istisnaları incele Bkz. Depo bağlamı ile yapay zeka yardımı alma
Kesme noktalarıyla ilgili sorunları giderme Bkz. Yapay zeka yardımı alma.

Bu senaryoların çoğunda Ask CopilotScreenshot of Ask Copilot button. veya Analyze ile Copilot düğmesini kullanarak hedeflenen yardım alırsınız. Copilot sorularınızın bağlamını zaten biliyor. Örneğin, geçerli çağrı yığınını, sormakta olduğunuz kod satırını ve özel durumun adını (varsa) bilir, bu nedenle sohbette bağlamı kendiniz sağlamanız gerekmez. Copilot ayrıca koşullu kesme noktalarının ve izleme noktalarının kullanımına yönelik öneriler sağlar.

Copilot kullanarak hata ayıklama

Aşağıdaki basit örnekte, satır içi Sohbet görünümünü kullanarak yapay zeka yardımı alma gösterilmektedir.

Not

Ayrıca View > GitHub Copilot Chat öğesini seçerek ayrı Sohbet penceresini kullanarak da yardım alabilirsiniz. Daha fazla bilgi için bkz. Visual Studio için GitHub Copilot Chat uzantısı nedir?.

Hata ayıklama oturumu başlat

  1. Visual Studio'da yeni bir C# Konsol uygulaması oluşturun.

    Başlangıç penceresinde yeni proje oluştur seçin. Arama kutusuna console yazın, dil olarak C#'i seçin ve ardından .NET için Console App seçin. Sonrakiseçin. ConsoleApp_Copilot gibi bir proje adı yazın ve İleriseçin.

    Önerilen hedef çerçeveyi veya .NET 10'u seçin ve ardından Create öğesini seçin.

    .NET için Console App proje şablonunu görmüyorsanız Tools>Get Tools and Features seçeneğine giderek Visual Studio Yükleyicisi'ni açabilirsiniz. .NET masaüstü geliştirme iş yükünü seçin ve ardından Modify öğesini seçin.

    Visual Studio, sağ bölmede Solution Explorer görünen konsol projesini oluşturur.

  2. Program.cs içindeki kodu aşağıdaki kodla değiştirin:

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
        public static void Main(string[] args)
        {
            int value = Int32.Parse(args[0]);
            List<String> names = null;
            if (value > 0)
                names = new List<String>();
    
            names.Add("Major Major Major");
        }
    }
    
  3. Aşağıdaki deyime sağ tıklayın ve kesme noktası>Kesme Noktası Ekleöğesini seçin.

    int value = Int32.Parse(args[0]);
    
  4. F5 tuşuna basın veya Hata Ayıklama menüsünden Hata Ayıklamayı Başlat seçeneğini seçin.

    Uygulama kesme noktasında duraklatılır. Otomatikler penceresi, args değişkeninin string[0]değerine sahip olduğunu gösterir.

    Otomatikler penceresinin ekran görüntüsü.

  1. Satır içi Sohbet görünümünü açmak için koda sağ tıklayın ve Sohbet'i seçin.
  1. Satır içi Sohbet görünümünü açmak için koda sağ tıklayın ve Ask Copilot seçin.

Bahşiş

Alternatif olarak, Otomatik veya Yerel Ayarlar penceresinde veya veri ipucunda bir değişkene sağ tıklayabilir ve Ask Copilot'ı seçebilirsiniz. Copilot, değişken adı ve bağlamı sağladığı için, sohbette bağlamı kendiniz sağlamanız gerekmez.

  1. Satır içi Sohbet görünümüne aşağıdaki soruyu yazın:

    Why does the args variable have a value of string[0]?
    

Satır içi Copilot Chat ekran görüntüsü.

Enter tuşlarına bastığınızda, Copilot kodunuzu anlayarak bir yanıt sağlar. (Burada gösterilenden farklı bir yanıt alabilirsiniz.)

** Copilot tarafından yanıtlanmış sorunun ekran görüntüsü.

Copilot kodunuz için önerilen bir düzeltmeye sahipse, size gösterilir. Aksi takdirde Copilot'dan kod önerisi isteyebilirsiniz.

Bahşiş

Satır içi sohbet'te "#" simgesini kullanın ve sorunuzda başvuruda bulunurken belirli bilgileri Copilot'a aktarmak için açılan listeden seçim yapın. Örneğin, kodun bir bölümünü seçip #yazarsanız, # açılan listesinden bu seçimi seçebilirsiniz. "#" simgesini, yerel ayarlar penceresi gibi açılan listede görünen IDE özelliklerine başvurmak için de kullanabilirsiniz.

  1. Bu örnekte, Copilot yanıtının sonuna kaydırın ve satır içi Sohbet penceresinin sonundaki "Programa hiç bir bağımsız değişken geçirilmediğinde durumu nasıl ele alabilirim?" sorusunu seçin.

    Copilot takip sorusunun ekran görüntüsü.

    Copilot kodunuz için önerilen bir düzeltmeyi gösterir.

    Copilot tarafından önerilen düzeltmenin ekran görüntüsü.

    Kod düzeltmeyi uygulamak istiyorsanız Sekme öğesini seçin.

  2. sonraki bölümde Copilot diğer özelliklerini öğrenmeye devam edebilmemiz için Alt+Delete öğesini seçin.

Satır içi Copilot Chat ekran görüntüsü.

Enter tuşlarına bastığınızda, Copilot kodunuzu anlayarak bir yanıt sağlar. (Burada gösterilenden farklı bir yanıt alabilirsiniz.)

Copilot'un yanıtladığı sorunun ekran görüntüsü.

Copilot kodunuz için önerilen bir düzeltmeye sahipse, size gösterilir. Aksi takdirde Copilot'dan kod önerisi isteyebilirsiniz.

Bahşiş

Satır içi sohbet'te "#" simgesini kullanın ve sorunuzda başvuruda bulunurken belirli bilgileri Copilot'a aktarmak için açılan listeden seçim yapın. Örneğin, kodun bir bölümünü seçip #yazarsanız, # açılan listesinden bu seçimi seçebilirsiniz. "#" simgesini, yerel ayarlar penceresi gibi açılan listede görünen IDE özelliklerine başvurmak için de kullanabilirsiniz.

  1. Bu örnekte, Copilot yanıtının sonuna kaydırın ve satır içi Sohbet penceresinin sonundaki "Programa hiç bir bağımsız değişken geçirilmediğinde durumu nasıl ele alabilirim?" sorusunu seçin.

    Copilot takip sorusunun ekran görüntüsü.

    Copilot kodunuz için önerilen bir düzeltmeyi gösterir.

    Copilot önerilen düzeltme ekran görüntüsü.

    Kod düzeltmesini uygulamak istiyorsanız Kabul Etseçin.

  2. Sonraki bölümde Copilot diğer özelliklerini öğrenmeye devam edebilmemiz için Cancel öğesini seçin.

Copilot ile bir istisna hatasını ayıklama

Aşağıdaki basit örnekte bir özel durumla karşılaştığınızda yapay zeka yardımı alma ve yapay zeka tarafından önerilen düzeltmelere göre kodunuzu hızla güncelleştirme adımları gösterilmektedir.

Hata ayıklama oturumu başlat

  • Aynı örnek uygulamayı kullanarak hata ayıklayıcıda duraklatıldığında, geçerli deyimi yürütmek için F11 tuşuna basın veya Hata Ayıklama >Adımla seçeneğine tıklayın.

    Bir IndexOutOfRangeException oluşur ve uygulama duraklatılarak istisna gösterilir.

    Özel durum için yapay zeka yardımı almak için sonraki bölüme geçin.

Yapay zeka yardımı isteyin

  1. Uygulama özel durumda duraklatıldığında Analyze with Copilot düğmesini seçin.

    Bir istisna içindeki Ask Copilot düğmesinin ekran görüntüsü.

    Henüz açık değilse, Copilot Chat penceresi görüntülenir ve hatanın ve neden oluştuğunun bir değerlendirmesini sağlar. Bu örnekte Copilot önerilen bir kod düzeltmesini, kodu kopyalamak için bir düğmeyi ve kod düzeltmesi için Preview düğmesini tanımlar.

    Özel durumla ilgili sorularınız varsa, bunları Ask Copilot metin kutusuna sorun.

    Copilot Chat penceresindeki Önizleme düğmesinin ekran görüntüsü.

  2. Copilot sohbet penceresinde Copilot hatayı önlemesini istediğinizi söyleyin.

  3. sohbet penceresinde Copilot bir düzeltme önerdiğinde Apply öğesini seçin.

  4. Önerilen düzeltmeyi gözden geçirin ve kod önerisini uygulamak için Sekme'yi seçin.

    Visual Studio'da kod önizlemesinin ekran görüntüsü.

  5. Hata ayıklayıcıyı yeniden başlatın.

    Bu kez özel durum oluşmaz. Düzeltildi!

  1. Uygulama özel durumda duraklatıldığından Ask Copilot düğmesini seçin.

    Bir istisna içindeki Ask Copilot düğmesinin ekran görüntüsü.

    Henüz açık değilse, Copilot Chat penceresi görüntülenir ve hatanın ve neden oluştuğunun bir değerlendirmesini sağlar. Bu örnekte Copilot önerilen bir kod düzeltmesini, kodu kopyalamak için bir düğmeyi ve kod düzeltmesi için Preview düğmesini tanımlar.

    Özel durumla ilgili sorularınız varsa, bunları Ask Copilot metin kutusuna sorun.

  2. Önizleme düğmesini seçin.

    Copilot Chat penceresindeki Önizleme düğmesinin ekran görüntüsü.

    Visual Studio, önerilen düzeltmeyi içeren bir kod önizlemesi gösterir.

  3. Önerilen düzeltmeyi gözden geçirin ve kod önerisini uygulamak için Kabul Et'i seçin.

    Visual Studio'da kod önizlemesinin ekran görüntüsü.

  4. Hata ayıklayıcıyı yeniden başlatın.

    Bu kez özel durum oluşmaz. Düzeltildi!

Hata Ayıklayıcı Ajan ile agentik hata çözümü

Hata Ayıklayıcı Aracısı, statik analize güvenmek yerine hataları gerçek çalışma zamanı davranışına karşı doğrulayan uçtan uca aracılı bir iş akışı sağlar. Deneyim size etkin bir döngüde yol gösterir: sorunu anlama ve yeniden üretme, uygulamayı araçlama, kök nedeni belirleme ve düzeltmeyi canlı yürütme yoluyla doğrulama.

GitHub veya Azure DevOps bir sorundan başlayabilir veya hatayı doğal dilde açıklayabilirsiniz. Hata Ayıklayıcı Aracısı sorunu yerel kaynak kodunuzla eşler ve çözümde size yol gösterir. Hata ayıklama işlemi sırasında aracıyla etkileşim kurarak daha fazla giriş sağlayabilir, teorinizi tartışabilir veya düzeltmeyi gerçek zamanlı olarak geliştirebilirsiniz.

Hata Ayıklayıcı Aracısını kullanmak için:

  1. Copilot Chat penceresini açın (View > GitHub Copilot Chat).
  2. Sohbet penceresinin sol alt köşesindeki mod açılır menüsünden Hata Ayıklayıcı'yı seçin.
  3. bir GitHub veya Azure DevOps sorun bağlantısı sağlayın ya da hatayı doğal dilde açıklayın.

Özel aracılarla aracı seçiciyi gösteren ekran görüntüsü, Visual Studio'da.

Hata Ayıklayıcı Aracısı aşağıdaki adımlarda çalışır:

  • Bağlam ekleme - Sorunu veya hata açıklamasını yerel kaynak kodunuzla bağlar.
  • Otonom çoğaltıcı - Hatayı analiz eder ve çoğaltma adımları eksikse, hatayı tetikleyen en düşük senaryoyu oluşturur.
  • Hipotez ve araçlandırma - Hata hipotezleri oluşturur ve çalışma zamanı durumunu yakalamak için uygulamanızı izleme noktaları ve koşullu kesme noktalarıyla araçlandırır.
  • Çalışma zamanı doğrulaması - Hata ayıklama oturumunu çalıştırır ve kök nedeni yalıtmak için canlı telemetriyi analiz eder.
  • Hedeflenen düzeltme - Geniş çaplı yeniden düzenleme yerine tam hata noktasında kesin bir düzeltme önerir.
  • Son insan doğrulaması - Senaryoyu yeniden çalıştırır ve düzeltmeyi aracıyla birlikte canlı ortamda onaylarsınız.

Sohbette Aracı modundayken, sohbet girişinde @debugger kullanarak Hata Ayıklayıcısı aracına da geçebilirsiniz. Hata Ayıklayıcı Aracısı ve diğer yerleşik aracılar hakkında daha fazla bilgi için bkz. Yerleşik ve özel aracıları GitHub Copilot ile kullanma.

Koşullu kesme noktaları ve izleme noktalarıyla öneriler alma

Copilot, kodunuza özgü koşulsal kesme noktaları ve tracepoints için öneriler sunar.

Bu örnekte, koşullu kesme noktası için yapay zeka önerileri göstereceğiz. İzleme noktaları için yapay zeka yardımı aynı şekilde çalışır.

  1. Geçerli kesme noktasını kaldırmak için üzerine tıklayın veya sağ tıklayıp Kesme Noktasını Silseçin.

  2. Aşağıdaki kod satırını değiştirin:

    names.Add("Major Major Major");
    

    bununla:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. names.Add("Name: " + item) deyiminin solundaki kenar boşluğuna sağ tıklayın ve Koşullu Kesme Noktası Ekleseçin.

  4. İfade alanını seçin ve Copilot öneriler üzerinde çalışmaya başlar.

     Koşullu kesme noktası önerileri üzerinde çalışan Copilot ekran görüntüsü.

  1. Öneriler görüntülendiğinde, item == "Test" gibi birini seçin. Öneriyi, adın Fredolacak şekilde düzenleyin.

    Copilot'un koşullu bir breakpoint için önerisinin ekran görüntüsü.

  1. Öneriler görüntülendiğinde item == "John"gibi birini seçin. Öneriyi, adın Fredolacak şekilde düzenleyin.

    Copilot önerisi için koşullu kesme noktasının ekran görüntüsü.

  1. Koşullu ifadeyi test etmek için:

    1. Solution Explorer'da ConsoleApp_Copilot projesine sağ tıklayın ve Properties öğesini seçin.

    2. Hata Ayıklama>Genel>Hata ayıklama başlatma profilleri kullanıcı arayüzünü açseçin.

    3. Komut satırı bağımsız değişkenleri alanına üç ayrı satıra 5 Fred Joegirin.

      Proje için komut satırı bağımsız değişkenlerini girme ekran görüntüsü.

    4. Hata ayıklayıcıyı yeniden başlatın.

    Hata ayıklayıcı kesme noktasında duraklatıldığında, item değerini denetleyin ve geçerli değerin Fredolduğunu doğrulayın.