Aracılığıyla paylaş


Hata ayıklama sırasında çağrı yığınının görsel haritasını oluşturma (C#, Visual Basic, C++, JavaScript)

Hata ayıklarken çağrı yığınını görsel olarak izlemek için bir kod eşlemesi oluşturun. Kodun ne yaptığını izlemek için harita üzerinde notlar alabilir, böylece hataları bulmaya odaklanabilirsiniz.

Kod eşlemeleriyle kullanabileceğiniz komutların ve eylemlerin ayrıntıları için bkz. Kod eşlemelerine göz atma ve yeniden düzenleme.

Önemli

Kod eşlemelerini yalnızca Visual Studio Enterprise sürümünde oluşturabilirsiniz.

Kod haritasına hızlı bir bakış:

Kod eşlemelerinde çağrı yığınlarıyla hata ayıklama

Çağrı yığınını eşleme

  1. Visual Studio Enterprise C#, Visual Basic, C++ veya JavaScript projesinde Hata Ayıklamayı Başlat>’ı seçerek veya F5 tuşuna basarak hata ayıklamaya başlayın.

  2. Uygulamanız kesme moduna girdikten veya bir işleve adımladıktan sonra Hata Ayıkla>Kod Haritası'nı seçin veya Ctrl+Shift+` tuşuna basın.

    Geçerli çağrı yığını yeni bir kod haritasında turuncu renkte görünür:

    Bkz. kod haritasında çağrı yığını

Hata ayıklamaya devam ettikçe kod haritası otomatik olarak güncelleştirilir. Harita öğelerinin veya düzenin değiştirilmesi kodu hiçbir şekilde etkilemez. Haritada herhangi bir şeyi yeniden adlandırmak, taşımak veya kaldırmaktan çekinmeyin.

Bir öğe hakkında daha fazla bilgi edinmek için öğenin üzerine gelin ve öğenin araç ipucuna bakın. Her simgenin ne anlama geldiğini öğrenmek için araç çubuğunda Gösterge'yi de seçebilirsiniz.

Kod Haritası Göstergesi

Uyarı

İleti Diyagram, kod eşlemesinin üst kısmındaki kodun eski bir sürümünü temel alabilir . Bu, eşlemeyi son güncelleştirdikten sonra kodun değişmiş olabileceği anlamına gelir. Örneğin, haritadaki bir çağrı artık kodda bulunmayabilir. İletiyi kapatın, ardından haritayı yeniden güncelleştirmeden önce çözümü yeniden oluşturmayı deneyin.

Harici kodu eşleştir

Varsayılan olarak, haritada yalnızca kendi kodunuz görünür. Haritada dış kodu görmek için:

  • Çağrı Yığını penceresine sağ tıklayın ve Dış Kodu Göster seçeneğini seçin:

    Çağrı Yığını penceresi ile dış kodu görüntüle

  • Veya Visual Studio'da Yalnızca Kodumu Etkinleştir onay kutusunu temizleyin:

    Bu seçenek, Tüm Ayarlar>Genel bölümünün altındaki Araçlar (veya >) >Seçenekleri bölmesinde kullanılabilir:

    Visual Studio'da Yalnızca Kodumu Etkinleştir seçeneğinin nasıl seçildiğini gösteren ekran görüntüsü.

    Bu seçenek, Genel Hata Ayıklama>Araçlar (veya Hata Ayıklama) >Seçenekleri iletişim kutusunda kullanılabilir:

    Seçenekler iletişim penceresini kullanarak DebuggerMap_DebugOptions aracılığıyla dış kodu göster

Haritanın düzenini denetleme

Haritanın düzenini değiştirmek kodu hiçbir şekilde etkilemez.

Haritanın düzenini denetlemek için harita araç çubuğundaKi Düzen menüsünü seçin.

Düzen menüsünde şunları yapabilirsiniz:

  • Varsayılan düzeni değiştirin.
  • Hata Ayıklama Sırasında Otomatik Düzen seçeneğini kaldırarak haritayı otomatik olarak yeniden düzenlemeyi durdurun.
  • Öğeleri eklerken Artımlı Düzen'in seçimini kaldırarak haritayı mümkün olduğunca az yeniden düzenleyin.

Kod hakkında notlar oluşturma

Kodda neler olduğunu izlemek için açıklamalar ekleyebilirsiniz.

Açıklama eklemek için kod haritasına sağ tıklayın veYeni Açıklamayı> seçin ve açıklamayı yazın.

Açıklamaya yeni satır eklemek için Shift+ basın.

Kod eşlemesinde çağrı yığınına açıklama ekleme

Haritayı sonraki çağrı yığınıyla güncelle.

Uygulamanızı bir sonraki kesme noktasına çalıştırırken veya bir işleve adım atarken harita otomatik olarak yeni çağrı yığınları ekler.

Kod eşlemesini sonraki çağrı yığını DebuggerMap_AddClearCallStack ile güncelleştirme

Haritanın otomatik olarak yeni çağrı yığınları eklemesini durdurmak için kod haritası araç çubuğunda Çağrı yığınını kod haritasında otomatik olarak göster seçeneğini belirleyin. Harita, mevcut çağrı yığınlarını vurgulamaya devam eder. Geçerli çağrı yığınını haritaya el ile eklemek için Ctrl+Shift tuşuna+` basın.

Haritaya ilgili kod ekleme

Artık C# veya Visual Basic'te bir haritanız olduğuna göre kodda neler olduğunu izlemek için alanlar, özellikler ve diğer yöntemler gibi öğeler ekleyebilirsiniz.

Koddaki bir yöntemin tanımına gitmek için haritadaki yönteme çift tıklayın veya bunu seçip F12 tuşuna basın ya da sağ tıklayıp Tanıma Git'i seçin.

Bir yöntemin kod tanımına kod eşlemesi üzerinde gidin DebuggerMap_GoToCodeDefinition

Haritaya izlemek istediğiniz öğeleri eklemek için bir yönteme sağ tıklayın ve izlemek istediğiniz öğeleri seçin. En son eklenen öğeler yeşil renkte görünür.

Çağrı yığını kod eşlemesinde bir yöntemle ilgili alanlar

Uyarı

Varsayılan olarak, öğe eklerken sınıf, ad alanı ve derleme gibi üst grup düğümleri de haritaya eklenir. Kod haritası araç çubuğundaKi Ebeveyn ekle düğmesini seçerek veya öğeleri eklerken Ctrl tuşuna basarak bu özelliği kapatıp açabilirsiniz.

Çağrı yığını kodu eşlemesinde bir yöntemdeki alanları gösterme

Daha fazla kod görmek için haritayı oluşturmaya devam edin.

Alan kullanan yöntemlere bakın: çağrı yığını kod eşlemesi

Çağrı yığını kod eşlemesinde bir alanı kullanan yöntemler

Haritayı kullanarak hataları bulma

Kodunuzu görselleştirmek hataları daha hızlı bulmanıza yardımcı olabilir. Örneğin, çizim uygulamasındaki bir hatayı araştırdığınızı varsayalım. Bir çizgi çizip geri almayı denediğinizde, başka bir çizgi çizene kadar hiçbir şey olmaz.

Bu nedenle, , clearve undo yöntemlerinde Repaintkesme noktaları ayarlar, hata ayıklamaya başlar ve şuna benzer bir harita oluşturursunuz:

Kod eşlemesine başka bir çağrı yığını ekleme

Haritadaki tüm kullanıcı hareketlerinin Repaint hariç undo çağrısını yaptığı fark edilir. Bu, neden undo hemen çalışmamasını açıklayabilir.

Hatayı düzelttikten ve uygulamayı çalıştırmaya devam ettikten sonra harita, undo'den Repaint'e yeni çağrıyı ekler.

Kod eşlemesinde çağrı yığınına yeni metod çağrısı ekle

Haritayı başkalarıyla paylaşma

Haritayı dışarı aktarabilir, Microsoft Outlook ile başkalarına gönderebilir, çözümünüze kaydedebilir ve sürüm denetimine denetleyebilirsiniz.

Haritayı paylaşmak veya kaydetmek için kod haritası araç çubuğunda Paylaş'ı kullanın.

Çağrı yığını kod haritasını başkalarıyla paylaşma