Visual Studio Hata Ayıklayıcısı'na ilk bakış

Bu konu başlığında Visual Studio tarafından sağlanan hata ayıklayıcı araçları tanıtılmaktadır. Visual Studio bağlamında, uygulamanızda hata ayıkladığınızda, 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ısı kodunuzun çalışırken ne yaptığını görmek için birçok yol sağlar. Kodunuzda adım adım ilerleyebilir ve değişkenlerde depolanan değerlere göz atabilir, değerlerin ne zaman değiştiğini görmek için değişkenler üzerinde izlemeler ayarlayabilir, kodunuzun yürütme yolunu inceleyebilirsiniz. Kodda ilk kez hata ayıklamayı denediyseniz, bu konuya geçmeden önce mutlak yeni başlayanlar için hata ayıklama konusunu okumak isteyebilirsiniz. Belirli bir görevi gerçekleştirmeye çalışıyorsanız ve hangi özelliği kullanacağınızı bilmeniz gerekiyorsa bkz . Hata ayıklayıcısı özellik bulucu. Yapay zeka destekli hata ayıklamayı denemek için bkz . Copilot ile hata ayıklama.

Burada açıklanan özellikler C#, C++, Visual Basic, JavaScript ve Visual Studio tarafından desteklenen diğer diller (not edilenler dışında) için geçerlidir.

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

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

Hata ayıklamak için, uygulamanızı uygulama işlemine eklenmiş hata ayıklayıcıyla başlatmanız gerekir. Bunu yapmak için:

  • En yaygın yöntem olan F5 (Hata AyıklamaYı > Başlat Hata Ayıklama) tuşlarına basın.

Ancak, şu anda uygulama kodunuzu incelemek için herhangi bir kesme noktası ayarlamamış olabilirsiniz, bu nedenle önce bunu yapacağız ve sonra hata ayıklamaya başlayacağız. Kesme noktaları, güvenilir hata ayıklama işleminin en temel ve önemli özelliğidir. Kesme noktası, değişkenlerin değerlerine, bellek davranışına veya bir kod dalının çalıştırılıp çalıştırılmadığına bakabilmeniz için Visual Studio'nun çalışan kodunuzu nerede askıya alması gerektiğini gösterir.

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

Kesme Noktası Ayarlama

Kesme Noktası Ayarlama

Hata Ayıklama Araç Çubuğu'nda F5 (Hata Ayıklama > Başlat Hata Ayıklama) veya Hata Ayıklamayı Başlat düğmesine Hata Ayıklamayı Başlat basın; hata ayıklayıcı karşılaştığı ilk kesme noktasına kadar çalışır. Uygulama henüz çalışmıyorsa, F5 hata ayıklayıcıyı başlatır ve ilk kesme noktasında durur.

Çoğu komut için klavye kısayollarını sağlarız çünkü bunlar uygulama kodunuzda gezinmeyi daha hızlı hale getirir. (Menü komutları gibi eşdeğer komutlar parantez içinde gösterilir.) Adım komutlarını kullanma hakkında daha fazla ayrıntı için bkz . Hata ayıklayıcıda kodda gezinme.

Uygulamanızı hata ayıklayıcı ekli olarak başlatmak için F11 (Hata Ayıklama > Adımına) basın. F11, Adımla komutudur ve uygulama yürütme işlemini her seferinde bir deyimle ilerler. Uygulamayı F11 ile başlattığınızda, hata ayıklayıcı yürütülen ilk deyimde sonlanır.

F11 Adımla

F11 Adımla

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

F11, yürütme akışını en ayrıntılı şekilde incelemenin iyi bir yoludur. (Kodda daha hızlı ilerlemek için size diğer bazı seçenekleri de gösteririz.) Varsayılan olarak, hata ayıklayıcısı kullanıcı dışı kodu atlar (daha fazla ayrıntı istiyorsanız bkz . Yalnızca Kodum).

Not

Yönetilen kodda, özellikler ve işleçler (varsayılan davranış) üzerinden otomatik olarak geçtiğinizde bildirim almak isteyip istemediğinizi soran bir iletişim kutusu görürsünüz. Ayarı daha sonra değiştirmek isterseniz, Hata Ayıklama altındaki Araçlar > Seçenekleri menüsündeKi Özellikler ve işleçler üzerinde adımla ayarını devre dışı bırakın.

İşlevleri atlamak için kodun üzerine adım atlayın

İşlev veya yöntem çağrısı olan bir kod satırında olduğunuzda, F11 yerine F10(Hata Ayıklama > Adımı) tuşuna basabilirsiniz.

F10, uygulama kodunuzdaki işlevlere veya yöntemlere adım atmadan hata ayıklayıcıyı ilerletir (kod yine de yürütülür). F10'a basarak ilgilenmediğiniz kodu atlayabilirsiniz. Bu şekilde, daha çok ilgilendiğiniz kodlara hızla ulaşabilirsiniz. Adım komutlarını kullanma hakkında daha fazla ayrıntı için bkz . Hata ayıklayıcıda kodda gezinme.

Fareyi kullanarak kodunuzda hızla bir noktaya kadar çalıştırın

Tıklatılacak Ç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ızla gezinmek için de kullanışlıdır. Herhangi bir açık dosyaya tıklamak için Çalıştır'ı kullanabilirsiniz. Bu özellik ve benzer gezinti özellikleri hakkında daha fazla bilgi için bkz . Kodunuzda belirli bir konuma çalıştırma.

Hata ayıklayıcıdayken, solda Tıkla çalıştır (Yürütmeyi buradan çalıştır) düğmesiVisual Studio Hata Ayıklayıcısı'ndan Tıklanacak Şekilde Çalıştır düğmesinin ekran görüntüsü. Düğme, yürütmenin düğmenin yerleştirildiği satıra kadar çalışması gerektiğini belirtir.görünene kadar bir kod satırının üzerine gelin.

İşlev çağrısının hemen solunda görünen Tıkla çalıştır düğmesini gösteren Visual Studio Hata Ayıklayıcısı'nın ekran görüntüsü.

İşlev çağrısının hemen solunda görünen Tıkla çalıştır düğmesini gösteren Visual Studio Hata Ayıklayıcısı'nın ekran görüntüsü.

Not

Tıkla çalıştır (Yürütmeyi buradan çalıştır) düğmesi Visual Studio 2017'den itibaren kullanılabilir.

Tıklamak için Çalıştır (Yürütmeyi buradan çalıştır) düğmesine tıklayın. Hata ayıklayıcı, tıkladığınız kod satırına ilerler.

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

Bazen hata ayıklama oturumunuza devam etmek ancak hata ayıklayıcıyı geçerli işlev boyunca ilerletmek isteyebilirsiniz.

Shift + F11 tuşlarına basın (veya Hata Ayıklama > Adımı Dışarı).

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

İmleç için çalıştır

Kodu düzenlerken (hata ayıklayıcıda duraklatmak yerine), uygulamanızda bir kod satırına sağ tıklayın ve İmleçte Çalıştır'ı seçin (veya Ctrl + F10 tuşuna basın). Bu komut hata ayıklamayı başlatır ve geçerli kod satırında geçici bir kesme noktası ayarlar. Bu özellik ve benzer gezinti özellikleri hakkında daha fazla bilgi için bkz . Kodunuzda belirli bir konuma çalıştırma.

İmleç'e Çalıştır

İmleç'e Çalıştır

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

İmleçte Çalıştır'ı seçtiğiniz kod satırına ulaşana kadar F5 tuşuna basın.

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

Not

Hata ayıklarken Çağrı Yığını penceresinde İmleçle Çalıştır'ı kullanabilirsiniz.

Uygulamanızı hızlı bir şekilde yeniden başlatın

Hata Ayıklama Araç Çubuğu'nda Yeniden BaşlatUygulamayı Yeniden Başlat düğmesine tıklayın (veya Ctrl + Shift + F5 tuşlarına basın).

Yeniden Başlat'a bastığınızda, uygulama durdurulduğunda ve hata ayıklayıcı yeniden başlatıldığında zaman kazanır. Hata ayıklayıcı, kod yürütülerek isabet edilen 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üzenleme

Visual Studio 2022, hata ayıklama sırasında canlı kod düzenlemeyi 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 duraklatılmış durumdayken imlecinizle koduna tıklayın, düzenlemeler yapın ve hata ayıklamaya devam etmek için F5, F10 veya F11 tuşlarına basın. Bu özelliği kullanma ve özellik sınırlamaları hakkında daha fazla bilgi için bkz . Düzenleme ve Devam.

Hata ayıklamayı düzenleme ve devam etme

Hata ayıklama oturumu sırasında XAML kodunu değiştirmek için bkz. XAML Çalışırken Yeniden Yükleme ile çalışan XAML kodunu yazma ve hata ayıklama.

Veri ipuçlarıyla değişkenleri inceleme

Artık biraz yolunuzu bildiğinize göre, hata ayıklayıcıyla uygulama durumunuzu (değişkenleri) incelemeye başlamak için iyi bir fırsatınız olur. Değişkenleri incelemenize olanak sağlayan özellikler, hata ayıklayıcının en kullanışlı özelliklerinden bazılarıdır ve bunu yapmanın farklı yolları vardır. Genellikle bir sorunun hatalarını ayıklamaya çalıştığınızda, değişkenlerin belirli bir uygulama durumunda olmasını beklediğiniz değerleri depolayıp depolamadığını bulmaya çalışırsınız. Veri ipuçlarını kullanma hakkında ayrıntılı bilgi için bkz . Veri ipuçlarında veri değerlerini görüntüleme.

Hata ayıklayıcıda duraklatılırken fareyle bir nesnenin üzerine gelin ve değerini veya varsayılan özellik değerini görürsünüz.

Veri İpucu Görüntüleme

Veri İpucu Görüntüleme

Değişkenin özellikleri varsa, nesnesini genişleterek tüm özelliklerini görebilirsiniz.

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

Otomatik Ve Yerel Ayarlar pencereleriyle değişkenleri inceleme

OtomatikLer penceresinde, değişkenlerin geçerli değerleri ve türleriyle birlikte olduğunu görürsünüz. OtomatikLer penceresi geçerli satırda veya önceki satırda kullanılan tüm değişkenleri gösterir (C++'da pencere, yukarıdaki üç kod satırındaki değişkenleri gösterir. Dile özgü davranış için belgeleri denetleyin). Bu pencereleri kullanma hakkında daha fazla bilgi için bkz . Autos and Locals pencerelerindeki değişkenleri inceleme.

Hata ayıklarken, kod düzenleyicisinin altındaki Otomatikler penceresine bakın.

Otomatik Pencere

Otomatik Pencere

Not

JavaScript'te YerelLer penceresi desteklenir, ancak Otomatikler penceresi desteklenmez.

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

Yerel Ayarlar Penceresi

Yerel Ayarlar Penceresi

Bu örnekte, this nesnesi ve nesnesi f kapsam içindedir. Daha fazla bilgi için bkz . Autos and Locals Windows'ta Değişkenleri İnceleme.

Saat ayarlama

İzleme penceresini, göz kulak olmak istediğiniz bir değişkeni (veya ifadeyi) belirtmek için kullanabilirsiniz. Ayrıntılı bilgi için bkz . Watch ve QuickWatch Pencerelerini kullanarak saat ayarlama.

Hata ayıklama sırasında bir nesneye sağ tıklayın ve Gözcü Ekle'yi seçin.

Gözcü Penceresi

Gözcü Penceresi

Bu örnekte, nesne üzerinde ayarlanmış bir izlemeniz vardır ve hata ayıklayıcıda ilerledikçe değer değişikliğini görebilirsiniz. Diğer değişken pencerelerinden farklı olarak, İzleme pencereleri her zaman izlediğiniz değişkenleri gösterir (kapsam dışındayken gri görünür).

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

Çağrı Yığını penceresi, yöntemlerin ve işlevlerin çağrılma sırasını gösterir. Üst satırda geçerli işlev gösterilir. İkinci satırda, çağrıldığı işlev veya özellik gösterilir ve bu şekilde devam eder. Çağrı yığını, bir uygulamanın yürütme akışını incelemek ve anlamak için iyi bir yoldur. Ayrıntılı bilgi için bkz . Nasıl yapılır: Çağrı Yığınını İnceleme.

Not

Çağrı Yığını penceresi, Eclipse gibi bazı IDE'lerde Hata Ayıklama perspektifine benzer.

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

Çağrı Yığınını İnceleme

Çağrı Yığınını İnceleme

Bir kod satırına çift tıklayarak bu kaynak kodu inceleyebilir ve hata ayıklayıcı tarafından denetlenen geçerli kapsamı da değiştirebilirsiniz. Bu, hata ayıklayıcıyı ilerletmez.

Diğer işlemleri yapmak için Çağrı Yığını penceresindeki sağ tıklama menülerini de kullanabilirsiniz. Örneğin, belirli işlevlere kesme noktaları ekleyebilir, İmleçte Çalıştır'ı kullanarak uygulamanızı yeniden başlatabilir ve kaynak kodu inceleyebilirsiniz.

Özel durumu inceleme

Uygulamanız bir özel durum oluştururken hata ayıklayıcı sizi özel durum oluşturan kod satırına götürür. Ayrıntılı bilgi için bkz . Özel Durum Yardımcısı'nı kullanarak özel durumu inceleme.

Özel Durum Yardımcısı

Bu örnekte, Özel Durum Yardımcısı size bir System.NullReferenceException özel durum ve nesne başvurusunun nesnenin bir örneğine ayarlanmadığını belirten bir hata iletisi gösterir. Ve yöntemini çağırmaya Trim çalıştığınızda dize değerinin null olduğunu bildirir.

Özel Durum Yardımcısı

Bu örnekte, Özel Durum Yardımcısı size bir System.Argument özel durum ve yolun yasal bir form olmadığını belirten bir hata iletisi gösterir. Bu nedenle, hatanın bir yöntem veya işlev bağımsız değişkeninde oluştuğundan eminiz.

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

Özel Durum Yardımcısı, hata ayıklamanıza yardımcı olabilecek harika bir özelliktir. Ayrıca hata ayrıntılarını görüntüleme ve Özel Durum Yardımcısı'ndan bir saat ekleme gibi işlemler de yapabilirsiniz. Veya gerekirse, belirli bir özel durum oluşturma koşullarını değiştirebilirsiniz. Kodunuzda özel durumları işleme hakkında daha fazla bilgi için bkz . Hata ayıklama teknikleri ve araçları.

Bu özel durum türünün nasıl işleneceğini görmek için Özel Durum Ayarlar düğümünü genişletin, ancak bu tur için hiçbir şeyi değiştirmeniz gerekmez!

İpucu

Copilot kullanıyorsanız özel durumlarda hata ayıklarken yapay zeka yardımı alabilirsiniz. Copilot'a Copilot'a Sor düğmesinin ekran görüntüsü. Sor düğmesini arayın. Daha fazla bilgi için bkz . Copilot ile hata ayıklama.

Hata ayıklamayı yapılandırma

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

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

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

Proje özellikleri

Proje özellikleri

Azure Uygulaması Hizmeti'nde canlı ASP.NET uygulamalarında hata ayıklama

Azure Uygulaması Hizmeti'nde hata ayıklamak için bkz. Azure uygulamalarında hata ayıklama.

Visual Studio Enterprise (yalnızca) için Snapshot Debugger, ilgilendiğiniz kod yürütülürken üretim içi uygulamalarınızın anlık görüntüsünü alır. Hata ayıklayıcıya anlık görüntü almasını bildirmek için, kodunuzda snappoint'leri ve günlük noktalarını ayarlarsınız. Hata ayıklayıcı, üretim uygulamanızın trafiğini etkilemeden tam olarak neyin yanlış gittiğini görmenizi sağlar. Snapshot Debugger, üretim ortamlarında oluşan sorunları çözmek için gereken süreyi ö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, Azure Uygulaması Hizmetinde çalışan ASP.NET uygulamalar için kullanılabilir. ASP.NET uygulamalar .NET Framework 4.6.1 veya sonraki sürümlerinde, ASP.NET Core uygulamaları ise Windows üzerinde .NET Core 2.0 veya sonraki bir sürümde çalıştırılmalıdır.

Daha fazla bilgi için bkz . Snapshot Debugger kullanarak canlı ASP.NET uygulamalarında hata ayıklama.

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

IntelliTrace geri adım adım her kesme noktası ve hata ayıklayıcı adımı olayında uygulamanızın anlık görüntüsünü otomatik olarak alır. Kaydedilen anlık görüntüler önceki kesme noktalarına veya adımlara geri dönmenizi ve uygulamanın durumunu geçmişte olduğu gibi görüntülemenizi sağlar. IntelliTrace geri adımı, önceki uygulama durumunu görmek ancak hata ayıklamayı yeniden başlatmak veya istenen uygulama durumunu yeniden oluşturmak istemediğinizde size zaman kazandırabilir.

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

Geri ve İleriYe Doğru Adım Düğmeleri

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

Performans sorunlarının hatalarını ayıklama

Uygulamanız çok yavaş çalışıyorsa veya çok fazla bellek kullanıyorsa, uygulamanızı erken saatlerde profil oluşturma araçlarıyla test etmeniz gerekebilir. 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ış.

Bu öğreticide, birçok hata ayıklayıcı özelliğine hızlı bir bakış sağladınız. Kesme noktaları gibi bu özelliklerden birine daha ayrıntılı bir bakış isteyebilirsiniz.