Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
"Sorun bildir" aracı, Visual Studio kullanıcıları tarafından çeşitli sorunları bildirmek için yaygın olarak kullanılır. Visual Studio ekibi, kullanıcı geri bildirimlerindeki kilitlenme ve yavaşlık eğilimlerini belirledi ve geniş bir kullanıcı türünü etkileyen sorunları giderir. Belirli bir geri bildirim bileti ne kadar eyleme dönüştürülebilirse, ürün ekibi tarafından tanılanma ve çözümlenme olasılığı o kadar artar. Bu belge, kilitlenme veya yavaşlık sorunlarını bildirerek bunları daha eyleme dönüştürülebilir hale getirmek için en iyi yöntemleri açıklar.
Genel en iyi yöntemler
Visual Studio, çok sayıda dili, proje türünü, platformu ve daha fazlasını destekleyen büyük, karmaşık bir platformdur. Bunun nasıl gerçekleştirildiği, bileşenlerin bir oturumda yüklendiği ve etkin olduğu, yüklenen uzantılar, Visual Studio ayarları, makine yapılandırması ve son olarak düzenlenmekte olan kodun şeklidir. Değişken sayısı göz önüne alındığında, görünür belirti aynı olsa bile, bir kullanıcıdan gelen sorun raporunun başka bir kullanıcıdan gelen sorun raporuyla aynı temel sorunu oluşturup oluşturmadığını söylemek zordur. Bu nedenle, belirli sorun raporunuzun tanılanma olasılığının daha yüksek olduğundan emin olmak için bazı en iyi yöntemler aşağıda verilmiştir.
Mümkün olduğunca belirli bir başlık sağlayın
Bildirilen sorun için ayrı imzalar bulun ve başlığa mümkün olduğunca çok imza ekleyin. Başlık açıklayıcıysa, ilgisiz sorunları olan kullanıcıların (ancak aynı yüzeysel belirti) biletinize oy verme veya yorum yapma olasılığı daha düşüktür, böylece sorununuzun tanısını daha zor hale getirir.
Şüpheye düştüğünüzde yeni bir sorun raporu oluşturun
Birçok sorunun ayırt edici bir imzası veya yeniden oluşturma adımları olmayabilir. Bu gibi durumlarda, benzer bir dışa yönelikbelirtiyi bildiren başka bir rapora yapılan destek oyu veya yorumdan ziyade yeni bir rapor daha iyidir. Raporun türüne bağlı olarak, bu belgenin ilerleyen bölümlerinde açıklandığı gibi raporunuz için ek tanılama dosyaları ekleyin.
Soruna özgü en iyi yöntemler
Aşağıda, iyi tanılama dosyaları olmadan tanılaması zor olan sorunlar açıklanmıştır. Sorununuzu en iyi açıklayan olayı belirledikten sonra bu olaya özgü geri bildirim adımlarını izleyin.
Çökmeler: İşlem (Visual Studio) beklenmedik bir şekilde sonlandırıldığında bir çökme meydana gelir.
Yanıt Vermeme: VS uzun bir süre boyunca yanıt vermemeye başlar.
Yavaşlık sorunları: VS'deki belirli eylemler istenenden daha yavaş
Yüksek CPU: Beklenmedik şekilde yüksek CPU kullanımı ile uzun süreli dönemler
Out-Of-Process Sorunları: Visual Studio'nun uydu işlemi nedeniyle meydana gelen bir sorun
Çökme
İşlem (Visual Studio) beklenmedik bir şekilde sonlandırıldığında bir kilitlenme meydana gelir.
Doğrudan yeniden üretilebilir çökmeler
Doğrudan yeniden üretilebilir kilitlenmeler, aşağıdaki özelliklerin tümüne sahip olan durumlardır:
Bilinen bir adım kümesi izlenerek gözlemlenebilir
Birden çok bilgisayarda gözlemlenebilir (varsa)
Örnek kodda veya geri bildirimin bir parçası olarak bağlanabilen veya sağlanabilen bir projede yeniden oluşturulabilir (adımlar bir proje veya belge açmayı içeriyorsa)
Bu sorunlar için "Sorun Bildirme" içindeki adımları izleyin ve şunları eklediğinizden emin olun:
Sorunu yeniden oluşturma adımları
Yukarıda açıklandığı gibi tek başına bir çoğaltma projesi. Eğer tek başına yeniden üretim mümkün değilse lütfen şunları ekleyin:
Açık projelerin dili (C#, C++vb.)
Proje türü (Konsol Uygulaması, ASP.NET vb.)
Not
En değerli geri bildirim: Bu durumda en değerli geri bildirim, örnek kaynak koduyla birlikte sorunu yeniden oluşturmaya yönelik adımlar kümesidir.
Bilinmeyen kilitlenmeler
Kilitlenmelere neyin neden olduğundan emin değilseniz veya rastgele gibi görünüyorsa, Visual Studio her kilitlendiğinde döküm dosyalarını yerel olarak oluşturabilir ve bunları ayrı geri bildirim öğelerine ekleyebilirsiniz. Visual Studio kilitlendiğinde dökümleri yerel olarak kaydetmek için, yönetici komut penceresinde aşağıdaki komutları çalıştırın:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
Döküm sayısını ve döküm klasörünü uygun şekilde özelleştirin. Bu Ayarlar hakkında daha fazla bilgiye buradaulaşabilirsiniz.
Not
Görev Yöneticisi kullanılarak yakalanan dökümlerin yanlış bitlik olması olasıdır ve bu da onları daha az kullanılabilir hale getirir. Yukarıda açıklanan prosedür, yığın dökümünü yakalamak için tercih edilen yöntemdir. Görev Yöneticisi'ni kullanmak istiyorsanız, çalışmakta olan Görev Yöneticisi'ni kapatın, 32 bit Görev Yöneticisi'ni (%windir%\syswow64\taskmgr.exe) başlatın ve oradan bir yığın dökümü toplayın.
Not
Bu yöntem tarafından üretilen her döküm dosyasının boyutu 4 GB'a kadar olacaktır. DumpFolder'ı yeterli sürücü alanı olan bir konuma ayarladığınızdan veya DumpCount değerini uygun şekilde ayarladığınızdan emin olun.
Visual Studio her kilitlenişinde, yapılandırılan konumda devenv.exe.[number].dmp dosyası olarak bir döküm dosyası oluşturur.
Ardından Visual Studio'nun "Sorun Bildir..." özelliğini kullanın. Uygun dökümü eklemenize imkan tanır.
Bildirdiğiniz kilitlenme için döküm dosyasını bulun (Oluşturulma zamanı doğru olan bir dosya arayın)
Mümkünse, geri bildirim göndermeden önce boyutunu küçültmek için dosyayı (*.zip) sıkıştırın
"Sorun Bildirme" içindeki adımları izleyin ve yığın dökümünü yeni bir geri bildirim öğesine ekleyin.
Not
En değerli geri bildirim: Bu durumda en değerli geri bildirim, kilitlenme sırasında yakalanan yığın dökümüdür.
Tepkisizlik
VS, uzun bir süre boyunca yanıt vermemeye başlar.
Doğrudan Yeniden Üretilebilir Yanıt Vermeme
Kilitlenmelerle ilgili ilgili bölümde açıklandığı gibi, kolayca yeniden üretilebilen, birden çok makinede görülebilen ve küçük bir örnekte gösterilebilen sorunlar için en değerli geri bildirim raporları, sorunu yeniden oluşturma adımlarını içeren ve sorunu gösteren örnek kaynak kodu içeren raporlardır.
Bilinmeyen Yanıt Vermeme
Eğer bir yanıt vermeme durumu öngörülemeyen bir şekilde ortaya çıkarsa, bir sonraki durumda yeni bir Visual Studio örneği başlatın ve bu örnekten bir sorun bildirin. "Kayıt" ekranında yanıt vermeyen Visual Studio oturumunu seçtiğinizden emin olun. (Sorunu yeniden oluşturmak için izleyebileceğiniz eylemleri kaydetme hakkında daha fazla bilgi için sorun bildirme sayfasındaki 8. adıma bakın.)
Yanıt vermeyen Visual Studio örneği Yönetici modunda başlatıldıysa, ikinci örneğin de Yönetici modunda başlatılması gerekir.
Not
En değerli geri bildirim: Bu durumda en değerli geri bildirim, Yanıt Vermeme döneminde yakalanan yığın dökümüdür.
Yavaşlık ve Yüksek CPU Sorunları
Yavaşlık veya yüksek CPU kullanımı sorununu en çok eyleme dönüştürülebilir yapan şey, yavaş işlem veya yüksek CPU olayı devam ederken yakalanan bir performans izlemesidir.
Not
Mümkün olduğunda, her senaryoyu ayrı ve özel bir geri bildirim raporunda izole edin. Örneğin, hem yazma hem de gezinti yavaşsa, sorun başına bir kez aşağıdaki adımları izleyin. Bu, ürün ekibinin belirli sorunların nedenini yalıtmasına yardımcı olur.
Performansı yakalamanın en iyi sonuçları için şu adımları izleyin:
Henüz çalışmıyorsa, sorunu yeniden oluşturacağınız Visual Studio'nun bir kopyasını açın
Sorunu yeniden oluşturmak için her şeyi ayarlayın. Örneğin, belirli bir projenin, belirli bir dosyanın açık haliyle yüklenmesi gerekiyorsa, devam etmeden önce bu iki adımın da tamamlandığından emin olun.
bir çözümü yüklemeye özgü bir sorun bildir miyorsanız, performans izlemesini kaydetmeden önce çözümü açtıktan sonra 5-10 dakika (veya çözüm boyutuna bağlı olarak daha fazla) beklemeyi deneyin. Çözüm yükleme işlemi büyük miktarda veri üretir, bu nedenle birkaç dakika beklemek, bildirdiğiniz belirli soruna odaklanmamıza yardımcı olur.
Çözüm açık olmadan Visual Studio 'nin ikinci bir kopyasını başlat
Visual Studio'nun yeni kopyasında Sorun Bildir aracını açın
"İzleme ve yığın dökümü sağlama (isteğe bağlı)" adımına ulaşana kadar Sorun Bildirme adımlarını izleyin.
Visual Studio'nun ilk kopyasını (performans sorunuyla karşılaşan) kaydetmeyi ve kaydetmeye başlamayı seçin.
Adım Kaydedicisi uygulaması görünür ve kayda başlar.
Kayıt sırasında, Visual Studio'nun ilk kopyasında sorunlu eylemi gerçekleştirin. Belirli performans sorunlarının kayıtlı süre içinde görünmemesi durumunda bunları düzeltmemiz zordur.
Eylem 30 saniyeden kısaysa ve kolayca tekrarlanabilirse, sorunu daha fazla göstermek için eylemi yineleyin.
Çoğu durumda, özellikle sorunlu eylemin 30 saniyeden uzun sürdüğü (veya yinelendiği) durumlarda, sorunları göstermek için 60 saniyelik bir izleme yeterlidir. Süre, düzeltilmesi istediğiniz davranışı yakalamak için gerektiği şekilde ayarlanabilir.
Raporlamak istediğiniz yavaş işlem veya yüksek CPU olayı biter bitmez Adım Kaydedicisi'nde "Kaydı Durdur" seçeneğine tıklayın. Performans izlemesinin işlenmesi birkaç dakika sürebilir.
İşlem tamamlandıktan sonra geri bildiriminize birkaç ek eklenecektir. Sorunu yeniden oluşturmaya yardımcı olabilecek ek dosyaları ekleyin (örnek proje, ekran görüntüleri, videolar vb.).
Geri bildirimi gönderin.
Performans izlemesini kaydederken, raporlama yaptığınız yavaş işlem veya yüksek CPU sona eriyorsa kaydı hemen durdurun. Çok fazla bilgi toplanırsa, en eski bilgilerin üzerine yazılır. İzleme, ilginç bir işlemden hemen sonra (birkaç saniye içinde) durdurulmazsa, yararlı izleme verileri üzerine yazılır.
Geliştirici Topluluğu web sitesindeki mevcut geri bildirim öğelerine doğrudan performans izlemeleri eklemeyin. Ek bilgi istemek/sağlamak, Visual Studio'nun yerleşik Sorun Bildir aracında desteklenen bir iş akışıdır. Önceki bir geri bildirim öğesini çözmek için bir performans izlemesi gerekiyorsa, geri bildirim öğesinin durumunu "Daha Fazla Bilgi Gerekiyor" olarak ayarlarız ve bu durum yeni bir sorunu bildirmekle aynı şekilde yanıtlanabilir. Ayrıntılı yönergeler için sorun bildirme aracının belgesindeki "Daha Fazla Bilgi Gerekiyor" bölümüne bakın.
Not
En değerli geri bildirim: Neredeyse tüm yavaşlık/yüksek CPU sorunları için en değerli geri bildirim, yapmaya çalıştığınız şeyin yüksek düzeyde bir açıklaması ve bu süre içindeki davranışı yakalayan performans izlemesi (*.etl.zip) ile birlikte.
gelişmiş performans izlemeleri
Sorun bildir aracındaki izleme toplama özellikleri çoğu senaryo için yeterlidir. Ancak izleme koleksiyonu üzerinde daha fazla denetime ihtiyaç duyulduğu zamanlar vardır (örneğin, daha büyük arabellek boyutuna sahip izleme), bu durumda PerfView kullanmak için harika bir araçtır. PerfView aracını kullanarak performans izlemesini el ile kaydetme adımları PerfView ile performans izlemelerini kaydetme sayfasında bulunabilir.
Of-Process Dışında Sorunlar
Not
Visual Studio 2019 sürüm 16.3'den başlayarak, işlem dışı günlükler Sorun Bildir aracı kullanılarak gönderilen geri bildirimlere otomatik olarak eklenir. Ancak, sorun doğrudan yeniden üretilebilirse, aşağıdaki adımların izlenmesi sorunu daha iyi tanılamaya yardımcı olmak için ek bilgi eklemeye yardımcı olabilir.
Visual Studio'ya paralel çalışan ve ana Visual Studio işleminin dışından çeşitli özellikler sağlayan bir dizi uydu işlemi vardır. Bu uydu işlemlerinden birinde hata oluşursa, genellikle Visual Studio tarafında 'StreamJsonRpc.RemoteInvocationException' veya 'StreamJsonRpc.ConnectionLostException' olarak görülür.
Bu tür sorunları en çok eyleme dönüştürülebilir yapan şey, aşağıdaki adımları izleyerek toplanabilecek ek günlükler sağlamaktır:
Bu doğrudan yeniden üretilebilir bir sorunsa %temp%/servicehub/logs klasörünü silerek başlayın. Bu sorunu yeniden üretemiyorsanız lütfen bu klasörü olduğu gibi tutun ve aşağıdaki maddeleri yok sayın:
- Global ortam değişkeni ServiceHubTraceLevel'yi Tüm şeklinde ayarlayın
- Sorunu tekrar oluşturun.
Microsoft Visual Studio ve .NET Framework Günlük Toplama Aracı'nı buradanindirin.
Aracı çalıştırın. Bu, %temp%/vslogs.zipiçin bir zip dosyası çıkışı oluşturur. Lütfen bu dosyayı geri bildiriminize ekleyin.
İlgili içerik
- C++ ile ilgili bir sorun bildirin
- Visual Studio Geliştirici Topluluğu
- Geliştirici Topluluğu veri gizliliği