Uygulamalarınızda hata ayıklamak için kod eşlemelerini kullanma

Visual Studio'daki kod eşlemeleri büyük kod tabanlarında, tanıdık olmayan kodlarda veya eski kodlarda kaybolmamanıza yardımcı olabilir. Örneğin, hata ayıklarken birçok dosya ve projede koda bakmanız gerekebilir. Kod parçaları arasında gezinmek ve aralarındaki ilişkileri anlamak için kod eşlemelerini kullanın. Bu şekilde, bu kodu kafanızda izlemeniz veya ayrı bir diyagram çizmeniz gerekmez. Bu nedenle, çalışmanız kesintiye uğradığında kod eşlemeleri üzerinde çalıştığınız kodla ilgili belleğinizi yenilemenize yardımcı olur.

Code map - Map relationships in code

Yeşil ok, imlecinizin düzenleyicide nerede göründüğünü gösterir

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

Hata Ayıklayıcı aracıyla Visual Studio'da hata ayıklama hakkında daha fazla bilgi edinin.

Not

Kod eşlemeleri oluşturmak ve düzenlemek için Visual Studio Enterprise sürümü gerekir. Visual Studio Community ve Professional sürümlerinde, Enterprise sürümünde oluşturulan diyagramları açabilirsiniz, ancak düzenleyemezsiniz.

Sorunu anlama

Üzerinde çalıştığınız bir çizim programında bir hata olduğunu varsayın. Hatayı yeniden oluşturmak için çözümü Visual Studio'da açıp F5 tuşuna basarak hata ayıklamayı başlatın.

Bir çizgi çizip Son vuruşumu geri al'ı seçtiğinizde, bir sonraki çizgiyi çizene kadar hiçbir şey olmaz.

Code map - Repro bug

Bu nedenle yöntemini arayarak Undo araştırmaya başlarsınız. Sınıfta bulursunuz PaintCanvas .

Code map - Find code

Kodu eşleştirmeyi başlat

Şimdi yöntemini ve ilişkilerini eşlemeye undo başlayın. Kod düzenleyicisinden yöntemini ve başvurduğunu alanları yeni bir kod eşlemesine eklersiniz undo . Yeni bir eşleme oluşturduğunuzda, kodun dizinini oluşturmak biraz zaman alabilir. Bu, sonraki işlemlerin daha hızlı çalışmasını sağlar.

Code map - Show method and related fields

İpucu

Yeşil vurgu eşlemeye eklenen son öğeleri gösterir. Yeşil ok, imlecinizin koddaki konumunu gösterir. Öğeler arasındaki oklar farklı ilişkileri temsil eder. Fareyi üzerlerine taşıyarak ve araç ipuçlarını inceleyerek haritadaki öğeler hakkında daha fazla bilgi edinebilirsiniz.

Code map - Show tooltips

Her alanın kod tanımını görmek için haritadaki alana çift tıklayın veya alanı seçin ve F12 tuşuna basın. Yeşil ok eşlemedeki öğeler arasında hareket eder. Ayrıca kod düzenleyicisindeki imleciniz de otomatik olarak hareket eder.

Screenshot of a code map window with the history field selected and a code editor window where all instances of history are highlighted.

Screenshot of a code map window with the paintObjects field selected and a code editor window where all instances of paintObjects are highlighted.

İpucu

Kod düzenleyicisinde imleci hareket ettirerek yeşil oku eşlemede taşıyabilirsiniz.

Kod parçaları arasındaki ilişkileri anlama

Şimdi ve paintObjects alanlarıyla başka hangi kodun etkileşime geçtiğini history bilmek istiyorsunuz. Bu alanlara başvuran tüm yöntemleri eşlemeye ekleyebilirsiniz. Bunu haritadan veya kod düzenleyicisinden yapabilirsiniz.

Code map - Find all references

Open a code map from the code editor

Not

Windows Telefon veya Windows Mağazası gibi birden çok uygulama arasında paylaşılan bir projeden öğeler eklerseniz, bu öğeler her zaman haritada etkin olan uygulama projesiyle birlikte görünür. Bu nedenle, bağlamı başka bir uygulama projesiyle değiştirirseniz, haritadaki bağlam paylaşılan projeden yeni eklenen öğeler için de değişir. Eşleme üzerinde bir öğeyle gerçekleştirdiğiniz işlemler, yalnızca aynı bağlamı paylaşılan öğeler için geçerlidir.

İlişkilerin akışını yeniden düzenlemek ve eşlemenin okunmasını kolaylaştırmak için düzeni değiştirin. Ayrıca, öğeleri sürükleyerek de eşleme etrafında taşıyabilirsiniz.

Screenshot of a code map window with the Layout menu open and the Left to Rgiht command selected.

İpucu

Varsayılan olarak Artımlı Düzen açıktır. Yeni öğeler eklediğinizde, bu eşlemeyi mümkün olduğunca az yeniden düzenler. Her yeni öğe eklediğinizde haritanın tamamını yeniden düzenlemek için Artımlı Düzen'i kapatın.

Screenshot of a code map window with the relationshiop arrows between the fields pointing from left to right.

Bu yöntemleri inceleyelim. Haritada PaintCanvas yöntemine çift tıklayın veya bu yöntemi seçip F12 tuşuna basın. Bu yöntemin boş listeler oluşturduğunu history ve paintObjects oluşturduğunu öğrenirsiniz.

Screenshot of a code map window with the PaintCanvas method selected and a code snippet image showing the PainCanvas method name highlighted.

Şimdi yöntem tanımını incelemek için aynı adımları yineleyin clear . ve ile paintObjectshistorybazı görevlerin gerçekleştirildiğini clear öğrenirsiniz. Ardından yöntemini çağırır Repaint .

Screenshot of a code map window with the Clear method selected and a code snippet image showing the code for the Clear method.

Şimdi yöntem tanımını inceleyin addPaintObject . Ayrıca ve paintObjectsile history bazı görevler gerçekleştirir. Ayrıca öğesini de çağırır Repaint.

Screenshot of a code map window with the addPaintObject method selected and a code snippet image showing the code for the addPaintObject method.

Eşlemeyi inceleyerek sorunu bulma

değiştiren ve paintObjects çağıran historyRepainttüm yöntemler gibi görünüyor. Ancak yöntemi, undo aynı alanları değiştirse undo bile öğesini çağırmazRepaint. Bu nedenle, içinden arayarak Repaint bu sorunu çözebileceğinizi undodüşünüyorsunuz.

Code map - Find missing method call

Size bu eksik çağrıyı gösteren bir eşlemeniz yoksa, özellikle de daha karmaşık kod söz konusu olduğunda bu sorunun bulunması daha zor olabilir.

Keşfinizi ve sonraki adımları paylaşma

Siz veya başka biri bu hatayı düzeltmeden önce, eşlemenin üzerine sorunla ve bu sorunun düzeltilmesiyle ilgili notlar ekleyebilirsiniz.

Code map - Comment and flag items for followup

Örneğin, eşlemeye açıklamalar ekleyebilir ve renkler kullanarak öğeleri işaretleyebilirsiniz.

Code map - Commented and flagged items

Microsoft Outlook yüklüyse, eşlemeyi başkalarına e-postayla gönderebilirsiniz. Eşlemeyi bir görüntü veya başka bir biçim olarak dışarı da aktarabilirsiniz.

Code map - Share, export, mail

Sorunu giderme ve ne yaptığınızı gösterme

Bu hatayı düzeltmek için çağrısını Repaint öğesine undoeklersiniz.

Code map - Add missing method call

Düzeltmenizi onaylamak için hata ayıklama oturumunu yeniden başlatır ve hatayı yeniden oluşturmaya çalışırsınız. Şimdi Son vuruşumu geri al'ı seçtiğinizde beklediğiniz gibi çalışır ve doğru düzeltmeyi yaptığınız doğrulanır.

Code map - Confirm code fix

Eşlemeyi yaptığınız düzeltmeyi gösterecek şekilde güncelleştirebilirsiniz.

Code map - Update map with missing method call

Haritanız artık geri alma ve Yeniden Boyama arasında bir bağlantı gösteriyor.

Code map - Updated map with method call

Not

Eşlemeyi güncelleştirdiğinizde, eşlemeyi oluşturmak için kullanılan kod dizininin güncelleştirdiğini belirten bir ileti görebilirsiniz. Bu, birisinin kodu eşlemenizin geçerli kodla eşleşmemesine neden olacak şekilde değiştirdiği anlamına gelir. Bu sizi eşlemeyi güncelleştirmekten alıkoymaz, ancak kodla eşleştiğini doğrulamak için eşlemeyi yeniden oluşturmak zorunda kalabilirsiniz.

Artık araştırmanı bitirdin. Kodu eşleştirerek sorunu başarıyla buldunuz ve giderdiniz. Ayrıca kodda gezinmeye ve öğrendiklerinizi hatırlamanıza yardımcı olan ve sorunu gidermek için attığınız adımları gösteren bir eşlemeniz de vardır.