Visual Studio hata ayıklayıcıya ilk bakış

Bu konuda Visual Studio tarafından sunulan hata ayıklayıcı araçları tanıtılmaktadır. Visual Studio bağlamında, uygulamanızda hata ayıklarken, genellikle uygulamayı hata ayıklayıcı ekli (hata ayıklayıcı modunda) çalıştırdığınız anlamına gelir. Bunu yaptığınızda, hata ayıklayıcı kodun çalışırken ne yaptığını görmek için birçok yol sunar. Kodunuzda saklanan değerlere bakabilir ve değişkenlerde depolanan değerlere bakabilirsiniz, değerlerin ne zaman değişiklik olduğunu görmek için, değişkenlerinizin yürütme yolunu inceleyebilirsiniz. Kodu ilk kez ayıklamaya çalıştığınızda, bu konuya geçmeden önce mutlak yeni başlayanlar Için hata ayıklama işlemini okumak isteyebilirsiniz.

burada açıklanan özellikler, C#, C++, Visual Basic, JavaScript ve Visual Studio tarafından desteklenen diğer diller için geçerlidir (aksi belirtilmedikçe).

Kesme noktası ayarlama ve hata ayıklayıcıyı başlatma

Kesme noktaları, kod satırını veya çalışma zamanında ayrıntılı olarak incelemek istediğiniz kod bölümünü bildiğiniz yararlı bir özelliktir. Koşullu kesme noktaları ve işlev kesme noktaları gibi farklı kesme noktaları türleri hakkında daha fazla bilgi için bkz. kesme noktaları kullanma.

Hata ayıklamak için, uygulama işlemine eklenmiş hata ayıklayıcı ile uygulamanızı başlatmanız gerekir. F5 (hata ayıklama > hata ayıklamayı Başlat) bunu yapmanın en yaygın yoludur. Ancak, artık uygulama kodunuzu incelemek için herhangi bir kesme noktası ayarlanmamış olabilirsiniz; bu nedenle, önce bunu yapacağız ve ardından hata ayıklamayı başlatacak. Kesme noktaları, güvenilir hata ayıklamanın en temel ve temel özelliğidir. bir kesme noktası Visual Studio, çalışan kodunuzun nerede askıya alınacağını gösterir; böylece değişkenlerin değerlerine veya bellek davranışına ya da kodun bir dalının çalıştırılıp çalıştırılmayacağı konusunda bir görünüm elde edebilirsiniz.

Kod Düzenleyicisi 'nde açık bir dosyanız varsa, bir kod satırının solundaki kenar boşluğuna tıklayarak bir kesme noktası ayarlayabilirsiniz.

Kesme noktası ayarlama

Kesme noktası ayarlama

F5 tuşuna basın (hata ayıklama > başlatma hata ayıklaması) veya hata ayıklamayı Başlat düğmesi hata ayıklama araç çubuğunda başlatılır ve hata ayıklayıcı karşılaştığı ilk kesme noktasına çalışır. Uygulama henüz çalışmıyorsa, F5 hata ayıklayıcıyı başlatır ve ilk kesme noktasında durmaktadır.

Çoğu komut için klavye kısayolları sağlıyoruz, çünkü uygulama kodunuzun daha hızlı bir şekilde gezinmesine dikkat edin. (Menü komutları gibi eşdeğer komutlar parantez içinde gösterilir.) Adım komutlarını kullanma hakkında daha fazla bilgi için bkz. hata ayıklayıcıdaki koda gitme.

Uygulamanızı hata ayıklayıcı eklenmiş olarak başlatmak için, F11 tuşuna basın (hata ayıklama > adımla). F11, adımla komutuna ve aynı anda uygulama yürütmeyi tek bir ifadeye ilerletir. Uygulamayı F11 ile başlattığınızda, hata ayıklayıcı yürütülen ilk deyimde kesilir.

F11 step INTO

F11 step INTO

Sarı ok, hata ayıklayıcının duraklatıldığı ifadeyi temsil eder ve aynı noktada uygulama yürütmeyi de askıya alır (Bu bildirim henüz yürütülmemiştir).

F11, yürütme akışını en ayrıntılı incelemek için iyi bir yoldur. (Kod üzerinden daha hızlı hareket etmek için diğer bazı seçenekleri de göstereceğiz.) Varsayılan olarak, hata ayıklayıcı kullanıcı olmayan koddan atlar (daha fazla ayrıntı istiyorsanız, bkz. yalnızca kendi kodum).

Not

Yönetilen kodda, özellikleri ve işleçleri (varsayılan davranış) üzerinde otomatik olarak adımla uyarılmak isteyip istemediğinizi soran bir iletişim kutusu görürsünüz. Ayarı daha sonra değiştirmek istiyorsanız, hata ayıklama altındaki Araçlar > seçenekler menüsünde Özellikler ve işleçler üzerinde adımla ayarını devre dışı bırakın.

İşlevleri atlamak için kodun üzerinde adımla

Bir işlev veya yöntem çağrısı olan bir kod satırından olduğunuzda, F11 ( Hata Ayıkla > Step Over) tuşuna basarak F11 yerine + tuşlarına basabilirsiniz.

F10 uygulama kodunuzda işlevlere veya yöntemlere adımla hata ayıklayıcıyı ilerletir (kod yine de çalıştırılır). F10 tuşuna basarak, ilgilenmediğiniz kodu atlayabilirsiniz. Bu şekilde, daha fazla ilgilendiğiniz koda hızlı bir şekilde ulaşabilirsiniz. Adım komutlarını kullanma hakkında daha fazla bilgi için bkz. hata ayıklayıcıdaki koda gitme.

Fareyi kullanarak kodunuzda bir noktaya hızla çalışma

Tıklama Için Çalıştır düğmesinin kullanılması geçici bir kesme noktası ayarlamaya benzer. Bu komut, uygulama kodunun görünür bir bölgesinde hızlıca elde etmek için de kullanışlıdır. Çalıştır ' ı kullanarak herhangi bir açık dosyayı tıklatabilirsiniz. Bu özellik ve benzer gezinme özellikleri hakkında daha fazla bilgi için bkz. kodunuzda belirli bir konuma çalıştırma.

hata ayıklayıcı sırasında,  Visual Studio hata ayıklayıcısından tıklama düğmesine tıklayarak (yürütmeyi buraya çalıştır) düğme ekran görüntüsü olan bir kod satırının üzerine gelin. Düğme, yürütmenin düğmenin yerleştirildiği satıra çalışacağını belirtir. Sol tarafta görüntülenir.

işlev çağrısının yalnızca solunda görüntülenen tıklama düğmesine tıklayarak Visual Studio hata ayıklayıcının ekran görüntüsü.

işlev çağrısının yalnızca solunda görüntülenen tıklama düğmesine tıklayarak Visual Studio hata ayıklayıcının ekran görüntüsü.

Not

Tıklama Için Çalıştır (yürütmeyi buraya kadar Çalıştır) düğmesi, ' den itibaren kullanılabilir Visual Studio 2017 .

Çalıştırmak Için Çalıştır ' a tıklayın (yürütmeyi buraya kadar Çalıştır) düğmesine tıklayın. Hata ayıklayıcı, tıklattığınız kod satırına ilerler.

Hata ayıklayıcıyı geçerli işlevin dışına ilerletin

Bazen hata ayıklama oturumunuzu devam ettirmek, ancak hata ayıklayıcıyı geçerli işlev aracılığıyla ilerletmek isteyebilirsiniz.

SHIFT + F11 tuşlarına basın (veya hata ayıklama > Step Out).

Bu komut, geçerli işlev dönene kadar uygulama yürütmeyi sürdürür (ve hata ayıklayıcıyı ilerletir).

İmlece kadar Çalıştır

Kodu düzenlediğinizde (hata ayıklayıcıda duraklama yerine), uygulamanızdaki bir kod satırına sağ tıklayın ve Imlece git ' i seçin (veya CTRL + F10 tuşlarına basın). Bu komut, hata ayıklamaya başlar ve geçerli kod satırında geçici bir kesme noktası ayarlar. Bu özellik ve benzer gezinme özellikleri hakkında daha fazla bilgi için bkz. kodunuzda belirli bir konuma çalıştırma.

Imlece kadar Çalıştır

Imlece kadar Çalıştır

Kesme noktaları ayarladıysanız, hata ayıklayıcı, isabet eden ilk kesme noktasında duraklatılır.

Imlece çalıştırmayı seçtiğiniz kod satırına ulaşana kadar F5 tuşuna basın.

Bu komut, kodu düzenlediğinizde ve hızlı bir şekilde geçici bir kesme noktası ayarlamak ve hata ayıklayıcıyı aynı anda başlatmak istediğinizde yararlıdır.

Not

Hata ayıklarken çağrı yığını penceresinde imlece imlecini kullanabilirsiniz.

Uygulamanızı hızlıca yeniden başlatın

Hata ayıklama araç çubuğundaki uygulamayı yeniden Başlat düğmesine tıklayın (veya CTRL + SHIFT + F5 tuşlarına basın).

Yeniden Başlat'a bastığınızda, uygulamanın durdurulması ve hata ayıklayıcının yeniden başlatılması ile zaman kazandırır. Hata ayıklayıcı, kodu yürüterek vuran ilk kesme noktasında duraklatılır.

Hata ayıklayıcıyı durdurmak ve kod düzenleyicisine geri dönmek istiyorsanız, Yeniden Başlat yerine kırmızı Durdur hata ayıklamayı Durdur düğmesine basabilirsiniz.

Canlı kod düzenlemesi

Visual Studio 2022, hata ayıklarken canlı kod düzenlemesini destekler. Ayrıntılı bilgi için bkz.

Kodunuzu düzenleyin ve hata ayıklamaya devam edin (C#, VB, C++, XAML)

Visual Studio tarafından desteklenen çoğu dilde, kodunuzu hata ayıklama oturumunun ortasında düzenleyebilir ve hata ayıklamaya devam edebilirsiniz. Bu özelliği kullanmak için, hata ayıklayıcıda duraklama, düzenleme yapın ve hata ayıklamaya devam etmek için F5, F10 veya F11 tuşuna basın. Bu özelliği ve özellik sınırlamalarını kullanma hakkında daha fazla bilgi için bkz. Düzenle ve devam et.

Düzenle ve hata ayıklamayı Sürdür

Bir hata ayıklama oturumu sırasında XAML kodunu değiştirmek için bkz. xaml üzerinde çalışan xaml kodunu yazma ve hata ayıklama xaml çalışırken yeniden yükleme.

Veri ipuçları ile değişkenleri inceleyin

Biraz kısa bir süre içinde sizi öğrenmiş olduğunuza göre, uygulama durumunu (değişkenler) hata ayıklayıcıyla araştırmanız için iyi bir fırsattır. Değişkenleri incelemenizi sağlayan özellikler, hata ayıklayıcının en faydalı özelliklerinden bazılarıdır ve bunu yapmak için farklı yollar vardır. Genellikle, bir sorunu ayıklamaya çalıştığınızda, değişkenlerin belirli bir uygulama durumunda olmasını istediğiniz değerleri depolayıp depoladığını bulmaya çalışıyorsunuz. Veri ipuçlarını kullanma hakkında ayrıntılı bilgi için bkz. veri İpuçlarında veri değerlerini görüntüleme.

Hata ayıklayıcıda duraklalarken, fare ile bir nesnenin üzerine gelin ve değerini ya da varsayılan özellik değerini görürsünüz.

Veri Ipucunu görüntüleme

Veri Ipucunu görüntüleme

Değişkenin özellikleri varsa, tüm özelliklerini görmek için nesnesini genişletebilirsiniz.

Genellikle, hata ayıklarken, nesnelerdeki özellik değerlerini denetlemek için hızlı bir yol istersiniz ve veri ipuçları bunu yapmanın iyi bir yoludur.

İpucu

Desteklenen çoğu dilde kodu bir hata ayıklama oturumunun ortasında düzenleyebilirsiniz. Daha fazla bilgi için bkz. Düzenle ve devam et.

Oto ve Yereller pencerelerinde değişkenleri İnceleme

Oto penceresinde, değişkenleri geçerli değerleri ve türleri ile birlikte görürsünüz. Oto penceresi, geçerli satırda veya önceki satırda kullanılan tüm değişkenleri gösterir (C++ ' da, pencerede önceki üç kod satırındaki değişkenler gösterilir. Dile özgü davranışın belgelerini denetleyin). Bu pencereleri kullanma hakkında daha fazla bilgi için, Bkz. Otomatikler ve Yereller pencerelerinde değişkenleri inceleme.

Hata ayıklama sırasında, kod düzenleyicisinin en altındaki Otomatikler penceresine bakın.

Otomatikler Penceresi

Otomatikler Penceresi

Not

JavaScript'te Yereller penceresi desteklene, ancak Otomatikler penceresi desteklanmaz.

Ardından Yereller penceresine bakın. YerelLer penceresinde, şu anda kapsamda olan değişkenler gösterilir.

YerelLer Penceresi

YerelLer Penceresi

Bu örnekte, this nesnesi ve nesnesi f kapsamdadır. Daha fazla bilgi için, bkz. Inspect Variables in the Autos and Locals Windows.

Saat ayarlama

İzleme penceresi kullanarak göz tutmak istediğiniz bir değişken (veya ifade) belirtebilirsiniz. Ayrıntılı bilgi için bkz. Watch ve QuickWatchkullanarak watch Windows.

Hata ayıklama sırasında bir nesneye sağ tıklayın ve İzleme Ekle'yi seçin.

İzleme Penceresi

İzleme Penceresi

Bu örnekte nesnesinde bir izleme kümesi vardır ve hata ayıklayıcıda ilerlerken değerinin değişmesini sebilirsiniz. Diğer değişken pencerelerinin aksine, İzle pencereleri her zaman izlediğiniz değişkenleri gösterir (kapsam dışındayken bunlar gri renkte görünür).

Çağrı yığınını inceleme

Çağrı Yığını penceresi, yöntemlerin ve işlevlerin çağrıldığı sırayı gösterir. Üst satır geçerli işlevi gösterir. İkinci satırda işlevi veya işlevin çağrıldı olduğu özellik gibi bir şey yer almaktadır. Çağrı yığını, bir uygulamanın yürütme akışını incelemek ve anlamak için iyi bir yol sağlar. Ayrıntılı bilgi için bkz. Nasıl: Çağrı Yığınını Inceleme.

Not

Çağrı Yığını penceresi, Eclipse gibi bazı IDE'lerde Hata Ayıklama perspektifi ile benzerdir.

Hata ayıklama sırasında, varsayılan olarak sağ alt bölmede açık olan Çağrı Yığını penceresine tıklayın.

Çağrı Yığınını Inceleme

Çağrı Yığınını Inceleme

Bir kod satırına çift tıklar ve bu koda göz atabilir ve hata ayıklayıcı tarafından denetlenen geçerli kapsamı da değiştirir. Bu, hata ayıklayıcıyı ilerleten bir işlem değildir.

Başka şeyler yapmak için Çağrı Yığını penceresinden sağ tıklama menülerini de kullanabilirsiniz. Örneğin, belirli işlevlere kesme noktaları ekler, İmleçte Çalıştır'ı kullanarak uygulamanızı yeniden başlatabilir ve kaynak kodu incelemeye gidebilirsiniz.

Özel durumu inceleme

Uygulamanız bir özel durum atarsa, hata ayıklayıcı sizi özel durumu başlatan kod satırına alır. Ayrıntılı bilgi için bkz. Özel Durum Yardımcı'sı kullanarak bir özel durumu inceleme.

Özel Durum Yardımcı

Bu örnekte, Özel Durum Yardımcı nesne başvurusu nesnenin bir örneğine ayar olmadığını söyleyen bir özel durum ve hata iletisi System.NullReferenceException gösterir. Ayrıca, yöntemini çağırmayı dene denediğimiz zaman dize değerinin null olduğunu Trim söyler.

Özel Durum Yardımcı

Bu örnekte, Özel Durum Yardımcısı size bir özel durum ve yolun yasal bir form olmadığını System.Argument söyleyen bir hata iletisi gösterir. Bu nedenle hatanın bir yöntem veya işlev bağımsız değişkende olduğunu biliyoruz.

Bu örnekte DirectoryInfo çağrısı, değişkende depolanan boş dizede hata value verdi.

Özel Durum Yardımcı, hatalarda hata ayıklamanıza yardımcı olan harika bir özelliktir. Ayrıca hata ayrıntılarını görüntüleme ve Özel Durum Yardımcı'dan izleme ekleme gibi şeyler de ebilirsiniz. Veya gerekirse, belirli bir özel durumu atma koşullarını değiştirebilirsiniz. Kodundaki özel durumları işleme hakkında daha fazla bilgi için bkz. Hata ayıklama teknikleri ve araçları.

Bu özel durum Ayarlar işleme hakkında daha fazla seçenek görmek için Özel Durum Kümesi düğümünü genişletin, ancak bu tur için hiçbir şeyi değiştirmeniz gerekmeyecek!

Hata ayıklamayı yapılandırma

Projenizi Hata Ayıklama veya Yayın yapılandırması olarakderlemek, hata ayıklama için proje özelliklerini yapılandırmak veya hata ayıklama için genel ayarları yapılandırmak üzere yapılandırabilirsiniz. Ayrıca hata ayıklayıcıyı DebuggerDisplay özniteliği veya C/C++ için NatVis çerçevesi gibi özellikleri kullanarak özel bilgileri görüntüleyebilirsiniz.

Hata ayıklama özellikleri her proje türüne özeldir. Örneğin, uygulamayı başlatarak uygulamaya geçeceği bir bağımsız değişken belirtebilirsiniz. projesinde projeye sağ tıklar ve Özellikler'i seçerek Çözüm Gezgini özelliklere erişebilirsiniz. Hata ayıklama özellikleri genellikle belirli bir proje türüne bağlı olarak Derleme veya Hata Ayıklama sekmesinde görünür.

2022'den başlayarak .NET projeleri için Hata Ayıklama sekmesi, hata ayıklamayla ilgili özellikleri ayarlayarak hata ayıklama başlatma profilleri kullanıcı arabirimine bir bağlantı sağlar. Visual Studio

Project özellikleri

Project özellikleri

Azure App Service'ASP.NET canlı Azure App Service

bu Snapshot Debugger, ilgilendiğiniz kod yürütülürken üretim uygulamalarınıza bir anlık görüntü alır. Hata ayıklayıcıya anlık görüntü alma talimatı almak için kodunda anlık görüntü noktaları ve günlük noktaları ayarlayın. Hata ayıklayıcısı, üretim uygulama trafiğinizi etkilemeden tam olarak neyin yanlış gittiğini görmenizi sağlar. Bu Snapshot Debugger, üretim ortamlarında oluşan sorunları çözmek için gereken zamanı önemli ölçüde azaltmanıza yardımcı olabilir.

Anlık görüntü hata ayıklayıcısını başlatma

Anlık görüntü koleksiyonu, ASP.NET çalışan uygulamalar için Azure App Service. ASP.NET uygulamaların .NET Framework 4.6.1 veya sonraki bir ASP.NET Core üzerinde, ASP.NET Core uygulamalarının da Windows üzerinde .NET Core 2.0 veya sonraki bir Windows.

Daha fazla bilgi için bkz. ASP.NET kullanarak canlı Snapshot Debugger.

IntelliTrace geri adım atarak anlık görüntüleri görüntüleme (Visual Studio Enterprise)

IntelliTrace geri adımı, her kesme noktası ve hata ayıklayıcı adımı olayında otomatik olarak uygulamanın anlık görüntüsünü alır. Kaydedilen anlık görüntüler, önceki kesme noktalarına veya adımlara geri dönmenizin yanı sıra uygulamanın geçmişte olduğu gibi durumunu görüntülemeye olanak sağlar. IntelliTrace geri adımı önceki uygulama durumunu görmek istediğiniz ancak hata ayıklamayı yeniden başlatmak veya istenen uygulama durumunu yeniden oluşturmak istemeyebilirsiniz.

Hata Ayıklama araç çubuğundaki Geri Adım ve İleri Adım düğmelerini kullanarak anlık görüntülerde gezinebilirsiniz ve görüntüleyebilirsiniz. Bu düğmeler, Tanılama Araçları penceresindeki Olaylar sekmesinde görünen Tanılama Araçları gezinebilirsiniz.

Geri ve İleri Adım Düğmeleri

Daha fazla bilgi için IntelliTrace kullanarak önceki uygulama eyaletlerini inceleme sayfasına bakın.

Performans sorunlarını ayıklama

Uygulamanız çok yavaş çalışıyorsa veya çok fazla bellek kullanıyorsa, profil oluşturma araçlarıyla erkenden test etmek zorundayabilirsiniz. CPU Kullanımı aracı ve Bellek Çözümleyicisi gibi profil oluşturma araçları hakkında daha fazla bilgi için bkz. Profil oluşturma araçlarına ilk bakış.

Sonraki adımlar

Bu öğreticide, birçok hata ayıklayıcı özelliğine hızlı bir bakış edindi. Kesme noktaları gibi bu özelliklerden birini daha ayrıntılı bir şekilde görmek istiyor olabilir.