Visual Studio Hata Ayıklayıcısı'na ilk bakış
Şunun için geçerlidir:Visual Studio Mac için Visual Studio Visual Studio Code
Bu konuda, 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ıklama yaptığınızda genellikle uygulamayı hata ayıklayıcı ekli olarak çalıştırdığınız anlamına gelir (hata ayıklayıcı modunda). 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 bakabilir, 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.
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
Çalışma zamanında ayrıntılı olarak incelemek istediğiniz kod satırını veya kod bölümünü bildiğinizde kesme noktaları 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ıklamanın en temel ve temel ö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 göz atabilmeniz için Visual Studio'nun çalışan kodunuzu nerede askıya alacağını 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.
Hata Ayıklama Araç Çubuğu'nda F5 (Hata AyıklamaYı > Başlat Hata Ayıklama) veya Başlat düğmesi Hata 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.
Adım komutlarını kullanarak hata ayıklayıcıda kodda gezinme
Çoğu komut için klavye kısayollarını sağlarız çünkü bunlar uygulama kodunuzun gezintisini 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ı İçine) basın. F11 , İçine Adımla komutudur ve uygulama yürütme işlemini bir kerede bir deyimle ilerler. Uygulamayı F11 ile başlattığınızda, yürütülen ilk deyimde hata ayıklayıcı bozulur.
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ı 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ış) üzerine 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'nın 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 tuşuna 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ıklayacak Şekilde Ç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 dosyada Tıklamak için Çalıştır'ı kullanabilirsiniz. Bu özellik ve benzer gezinti özellikleri hakkında daha fazla ayrıntı için bkz. Kodunuzda belirli bir konuma çalıştırma.
Hata ayıklayıcıdayken, Tıklatılacak Çalıştır (Yürütmeyi buraya kadar çalıştır) düğmesine kadar bir kod sol tarafta görünür.
Not
Tıkla çalıştır (Yürütmeyi buraya kadar çalıştır) düğmesi Visual Studio 2017'den itibaren kullanılabilir.
Tıklayacak Şekilde Çalıştır (Yürütmeyi buraya kadar ç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 ilerletme
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 Çıkış Adımlarının Hatalarını Ayıklayın>).
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çle ç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ç'e Çalıştır'ı seçin (veya Ctrl-F10 tuşlarına 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 ayrıntı için bkz. Kodunuzda belirli bir konuma çalıştırma.
Kesme noktaları ayarladıysanız, hata ayıklayıcı ilk isabet noktası üzerinde 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 çalıştır-imleç'i kullanabilirsiniz.
Uygulamanızı hızlı bir şekilde yeniden başlatın
Hata Ayıklama Araç Çubuğu'nda 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 zamandan tasarruf edebilirsiniz. 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ı dur 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, hata ayıklama oturumunun ortasında kodunuzu düzenleyebilir ve hata ayıklamaya devam edebilirsiniz. Bu özelliği kullanmak için hata ayıklayıcıda duraklatılmış durumdayken imlecinizle kodunuz içine 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üzenle ve Devam Et.
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 yolunuzu biraz bildiğinize göre, hata ayıklayıcı ile uygulama durumunuzu (değişkenleri) incelemeye başlamak için iyi bir fırsat elde edebilirsiniz. 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ılmış durumdayken fareyle bir nesnenin üzerine gelin ve nesnenin değerini veya varsayılan özellik değerini görürsünüz.
Değişkenin özellikleri varsa, tüm özelliklerini görmek için nesneyi genişletebilirsiniz.
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.
İpucu
Desteklenen dillerin çoğunda, hata ayıklama oturumunun ortasında kodu düzenleyebilirsiniz. Daha fazla bilgi için bkz. Düzenle ve Devam Et.
OtomatikLer ve Yereller 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 önceki üç 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 . Otomatikler ve Yereller pencerelerindeki değişkenleri inceleme.
Hata ayıklama sırasında kod düzenleyicisinin altındaki Otomatikler penceresine bakın.
Not
JavaScript'te YerelLer penceresi desteklenir, ancak Otomatikler penceresi desteklenmez.
Ardından YerelLer penceresine bakın. Yerel Ayarlar penceresinde, şu anda kapsamda olan değişkenler gösterilir.
Bu örnekte,
this nesnesi ve nesnesi
f kapsam içindedir. Daha fazla bilgi için bkz. Autos and Locals Windows'da Değişkenleri İnceleme.
Saat ayarlama
İzleme penceresi kullanarak göz kulak olmak istediğiniz bir değişken (veya ifade) belirtebilirsiniz. Ayrıntılı bilgi için bkz. Watch ve QuickWatch Windows kullanarak saat ayarlama.
Hata ayıklarken bir nesneye sağ tıklayın ve Gözcü Ekle'yi seçin.
Bu örnekte, nesnede ayarlanmış bir izlemeniz vardır ve hata ayıklayıcıda ilerlerken değerinin değiştiğ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 vb. gösterilir. Ç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.
Bu kaynak koda bakmak için bir kod satırına çift tıklayabilirsiniz ve bu da hata ayıklayıcı tarafından incelenen geçerli kapsamı değiştirir. 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 kodunu 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.
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.
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
value hata verdi.
Ö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şlendiğ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!
Hata ayıklamayı yapılandırma
Projenizi Hata Ayıklama veya Yayın yapılandırması olarak oluşturacak şekilde 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 hata ayıklayıcısını, DebuggerDisplay özniteliği veya C/C++ için NatVis çerçevesi gibi özellikleri kullanarak özel bilgileri görüntüleyecek şekilde yapılandırabilirsiniz.
Hata ayıklama özellikleri her proje türüne özeldir. Örneğin, uygulamayı başlattığınızda 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.
Azure App Service'da canlı ASP.NET uygulamalarında hata ayıklama
Azure App Service hatalarını 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ü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ü koleksiyonu, Azure App Service çalışan ASP.NET uygulamalar için kullanılabilir. ASP.NET uygulamalar .NET Framework 4.6.1 veya sonraki bir sürümde ve ASP.NET Core uygulamaların Windows üzerinde .NET Core 2.0 veya sonraki bir sürümde çalışıyor olması gerekir.
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 otomatik olarak uygulamanızı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önmenizi ve uygulamanın durumunu geçmişte olduğu gibi görüntülemenizi sağlar. IntelliTrace geri adım adım, önceki uygulama durumunu görmek istediğinizde 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ünen olaylara gider.
Daha fazla bilgi için IntelliTrace kullanarak önceki uygulama durumlarını inceleme sayfasına bakın.
Hata ayıklama performans sorunları
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ış.
Sonraki adımlar
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.