Visual Studio yükleme sembolleri


166

Bir süredir ColdFusion projesi üzerinde çalışıyorum ve Visual Studio en azından benim için garip davranmaya başladı.

Hata ayıklamaya başladığımda projeyi oluşturduğunu, konuşlandırmayı başlattığını ve konuşlandırmanın bittiğini ve projem için semboller yüklemeye başladığını gözlemledim.

Ama çok yavaştı ve neden bu adımı yapmaya başladığını bilmiyorum. Ne yapabilirdim?

Bu sembol yükleme adımı gerekli mi? Nasıl devre dışı bırakabilirim?

Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller iletişim kutusunda Sembol dosyası (.pdb) konumu eklenmez. Projemin hata ayıklama dizinini aşağıdaki alana işaret ettim ve "Yukarıdaki dizini yalnızca semboller .... olduğunda ara" onay kutusunu işaretledim. Bu iletişim kutusunu simge yüklemeyi kapatmak için nasıl ayarlamalıyım?

Hangi sembollerin yüklü olduğu Modüller penceresine baktım, ama bana hiçbir şey söylemiyor. Sorun nedir?

resim açıklamasını buraya girin


3
Ben şanssız iplik her cevap denedim.
Johan Larsson

3
Genellikle semboller önbelleğe alınmalı ve yüklenmesi çok az zaman alacaktır, sembol yükünün yavaş olduğunu fark edeceğiniz tek zaman, sembollerin çok çok yavaş olan microsoft sembol sunucularından yüklenmesi durumundadır (her zaman çok yavaş değil ama yavaş hiçbiri) daha az), bu sorunu düzeltmeyi denemenin ve denemenin iyi bir yolu, sembollerin önbelleğini silmek, Hata Ayıkla -> Seçenekler -> Hata Ayıklama -> Semboller'e gidin ve işe yaramazsa boş sembollerin önbelleğini tıklayın. tamamen başka bir sorun olabilir, umarım bu soru 3 yaşında olduğu gibi gören birinin yararlar (:
daniel

Yanıtlar:


266

Hata Ayıkla -> Tüm Kesme Noktalarını Sil ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Bundan sonra tekrar kullanabilirsiniz, ancak tekrar yapın bir Zamanlar. Bir çeşit "geçersiz" kesme noktasını da kaldıracak ve daha sonra yükleme sembolleri tekrar hızlı olacaktır. Bu sorunu günlerce takip ediyordum :(.


4
Visual Web Developer 2010 Express kullanıcıları CTRL + ÜST KARAKTER + F9 tuşlarına ve "Tüm kesme noktalarını silmek istiyor musunuz?" görünecek. En az bir etkin kesme noktasına ihtiyacınız var (sorunlu arka plan kesme nokta (lar) ının bu şekilde ayarlandığından emin değilsiniz). Teşekkürler! Şimdi çok daha hızlı ...
Cymen

Ne yıldız ama! Çok teşekkür ederim.
user489998

Gerçekten de bu işe yarıyor! İnanılmaz! Bu bariz hatayı Microsoft'a zaten bildiren var mı?
real_yggdrasil

Sen bir başlangıçsın, bu beni günlerdir deli ediyor. Milyonlarca kez teşekkürler!
markpcasey

Bu beklenmedik bir şeydi! Gerçekten işe yaradı. Günümü kurtardın, çok teşekkür ederim!
tmatuschek

132

Yavaş yüklemenin bir başka nedeni, Hata Ayıklama seçeneklerinde "Yalnızca Kodumu Etkinleştir" seçeneğini devre dışı bırakmış olmanızdır. Bunu etkinleştirmek için şu adrese gidin:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Bunun işaretli olduğundan emin olun.


"Just My Code" seçeneği, Visual Studio'nun bazı Express sürümlerinde (Visual C # 2010 Express'te bulunur) Seçenekler iletişim kutusunda kullanılamaz, ancak başka yollarla değiştirilebilir: 'Just My Code'u nasıl devre dışı bırakabilirim? 'Visual Basic 2005 Express'te? .
Peter Mortensen

3
Bu benim için düzeltti ... "Tüm Kesme Noktalarını Sil" yanıtı değil.
Mark Brittingham

Bu, Visual Studio'daki en kötü seçenektir. Sembol yüklemesini devre dışı bırakmak çok daha iyi, böylece hala eksik semboller olan istisna atışlarını ve yığın çerçevelerini görebilirsiniz. (Sadece isim yerine numarayı okumak zor). Tabii ki, genellikle web sitesi kodu üzerinde çalışıyorum, bu yüzden altımda başarısız olabilecek bir sürü IIS var. Normalde sadece veri kaynağı olarak Microsoft (ve tüm uzak) sembol sunucularının seçimini kaldırmak çalışır.
ebyrob

Yarım günümü kurtardın ...! : D
Vaibhav Deshmukh

43

Araçlar, Seçenekler, Hata Ayıklama, Semboller içinde yapılandırın.

Genellikle ne yaptığını görmek için çıktı penceresini (görünüm, çıktı) izleyebilirsiniz. Eğer gerçekten yavaşsa, muhtemelen eksik sembolleri indirmek için bir sembol sunucusuna, muhtemelen Microsoft'un isabet ettiği anlamına gelir. Bu, her başlangıçta bulamadığı her dosya için üç HTTP isabet alır - bunu bazen alttaki durum çubuğunda veya örneğin Fiddler'da görebilirsiniz. Hata ayıklama sırasında hangi modüllerin Hata Ayıklama, Windows, Modüller içine yüklendiğini görebilirsiniz.

Semboller, üçüncü taraflara ve sistem derlemelerine yararlı yığın izleme bilgileri aldığınız anlamına gelir. Kesinlikle kendi kodunuz için onlara ihtiyacınız var, ama bence bunlar ne olursa olsun yüklenir. En iyi seçeneğiniz, o menüdeki yerel olmayan sembol kaynaklarını kapatmaktır ve sistem montajları için hata ayıklamanız gerekmeyen çok sayıda sembol yüklüyorsanız hata ayıklama başlamasını hızlandırmak için bunları yüklemeyi geçici olarak devre dışı bırakabilirsiniz - ancak yüklenmeleri genellikle yararlıdır.


3
Araçlar -> Seçenekler -> Hata ayıklama -> Semboller iletişim kutusuna sembol dosyası (.pdb) eklenmez. Projemin hata ayıklama dizinini aşağıdaki alana işaret ettim ve "Yukarıdaki dizinde yalnızca semboller .... olduğunda ara" onay kutusunu işaretledim. Sembol yüklemesini kapatmak için bu iletişim kutusunu nasıl ayarlamam gerektiğini bilmiyorum.
arnoldino

1
Hmm, o zaman bilmiyorum. Hata ayıklamak için kendi kodunuz için semboller yüklemeniz gerekiyor, bu yüzden tamamen kapatmak istediğinizi düşünmüyorum. Sanırım hangi sembollerin yüklü olduğunu görmek için Modüller penceresine bakarım, hangilerine ihtiyacınız olduğunu hesaplayın ve belki de istemediğinizler için sembol önbelleğinizden .pdbs'yi silin?
Rup

1
'Microsoft sembol sunucusunu kullan' seçeneğini işaretleyin, kodunuzu bir kez çalıştırın ve ardından tüm semboller Önbellekte. Artık hız artışı için kutunun işaretini kaldırabilirsiniz.
john ktejik

1
Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller bölümünde Microsoft Symbol Server'ı devre dışı bırakmak bunu benim için düzeltti. Hata ayıklamanın başlaması için 30 saniye beklemeden önce. Şimdi sadece bir saniye.
Mike Chamberlain

41

Sadece bu problemi yaşadım.

Şuraya giderek düzeltildi:

Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller

Ardından, Sembol dosyası (.pdb) konumları için tüm yerel olmayan kaynakların işaretini kaldırın

örneğin, Microsoft Sembol Sunucuları ve msdl.microsoft.com/download/symbols


23

Benzer bir sorunla karşılaştım. Benim durumumda WinDbg içinde kullanmak için _NT_SYMBOL_PATH Microsoft Servers indirmek için ayarlamıştı ve ayarlandığında gibi görünüyor, Visual Studio bunu yok saymak için hiçbir şekilde kullanacaktır. Bu ortam değişkenini kaldırmak sorunumu çözdü.


Bu benim için de sorunu çözdü (sanırım upvotes düşük sayıda bu değişkeni ayarlayan insanların az sayıda kaynaklanıyor ...) Teşekkürler!
Aasmund Eldhuset

Burada aynı. Sadece sembollerden işaretini kaldırabileceğimi düşündüm, ama hayır, env var kaldırılmalı / yeniden adlandırılmalıdır.
codekaizen

16

Visual Studio hata ayıklama / yükleme için aşağıdaki yanıtı çok yavaş deneyebilirsiniz :

  1. Araçlar -> Seçenekler -> Hata Ayıklama -> Genel'e gidin

  2. "Yalnızca Kodumu Etkinleştir" in yanındaki onay işaretini işaretleyin.

  3. Araçlar -> Seçenekler -> Hata Ayıklama -> Semboller'e gidin

  4. "..." düğmesine tıklayın ve önbelleğe alınmış sembolleri depolamak için yerel bilgisayarınızda bir yerde yeni bir klasör oluşturun / seçin. Benim "Symbol caching" adını verdim ve Belgeler -> Visual Studio 2012'ye koydum.

  5. "Tüm sembolleri yükle" yi tıklayın ve sembollerin Microsoft'un sunucularından indirilmesini bekleyin, bu biraz zaman alabilir. Tüm sembolleri yükle düğmesinin yalnızca hata ayıklama sırasında kullanılabilir olduğunu unutmayın.

  6. Visual Studio'nun Microsoft sunucularını uzaktan sorgulamasını önlemek için "Microsoft Sembol Sunucuları" nın yanındaki onay işaretini kaldırın.

  7. "Tamam" ı tıklayın.

Ayrıca tüm kesme noktalarını silmeye çalışın (Hata Ayıkla> Tüm kesme noktalarını sil),

Ayrıca Bkz : Visual Studio 2015 RC1 Sembolleri yüklerken Hata Ayıklama modunda askıda kalıyor


6

Benim için, kabul edilen cevapta belirtildiği gibi kesme noktaları ile ilgili gibi görünüyor. Ancak, tüm kesme noktalarını silmeyi içermeyen iki geçici çözüm buldum:

  • Visual Studio'nun yeniden başlatılması geçici olarak düzeltildi gibi görünüyordu.
  • Hata ayıklama sırasında Visual Studio'yu kapatmak için "X" düğmesini tıklatmak "Hata ayıklamayı durdurmak istiyor musunuz?" mesaj kutusu açılır; bu mesaj kutusu yukarıdayken, semboller normal hızlarda yüklenir. Tüm semboller yüklendikten sonra, kapatmayı iptal etmek için "Hayır" ı tıklayabilirsiniz.

3
Bu çılgın geçici çözüm için teşekkür ederiz ('hata ayıklamayı durdurmak istiyor musunuz' mesajı ile). önce diğer cevapları denedim, ama şimdiye kadar sadece kırmızı "X" ve "ister misin ..." hilesi yardımcı oluyor. teşekkür ederim, aklımı kaybediyorum ...
pestophagous

2
@que: Heh, rica ederim! Kazara keşfettim. VS'nin bu modsal diyalog için girdiği ayrı bir mesaj döngüsü var gibi görünüyor, bu yüzden herhangi bir sebepten dolayı durgunlaştığında bazen diyalog patlaması :-)
Cameron

6

Bu sorunla yeni karşılaştım. Kesme noktalarını silmek işe yaramadı ya da en azından kendi başına değildi. Bu başarısız olduktan sonra Araçlar> Seçenekler> Hata Ayıklama> Semboller ve "Sembol Önbelleğini Boşalt" ı kullandım

daha sonra çözeltiyi temizledik ve yeniden oluşturduk.

Şimdi düzgün çalışıyor gibi görünüyor. Listelenen diğer tüm şeyleri denerseniz ve yine de bir fark yaratmazsa, bu ek bilgi parçaları yardımcı olabilir ...


2

Benim durumumda, Visual Studio, makinemde optik sürücüye gönderme yapan yollarda 3. taraf PDB'leri arıyordu. Tepsi içinde bir disk olmadan Windows başarısız ~ yaklaşık 30 aldı, bu da PDBs o yerden yüklemeye çalışırken Visual Studio yavaşladı. Tam cevabımda daha fazla ayrıntıyı burada bulabilirsiniz: https://stackoverflow.com/a/17457581/85196


2

Aynı sorunu yaşadım ve sembol yüklemesini kapattıktan sonra bile, Visual Studio'da modül yüklemesi çok yavaştı.

Çözüm, virüsten koruma yazılımını (benim durumumda NOD32) veya daha iyisini kapatmak, işleminizin derlemeleri yüklediği yolları görmezden gelmesi için istisnalar eklemekti (benim durumumda GAC ​​klasörü ve Geçici ASP .NET Files klasörü).


2

2 sentim,

Benzer bir sorun x64 Release Mode (CPU Sampling) (Visual Studio 2013) Tanılama Raporu almaya çalışırken ve gerekli dll dosyaları için semboller yüklenirken, çalıştırılabilir semboller yüklenemedi.

Semboller menüsünde hiçbir şey değiştirmedim, bunun yerine Çözüm Gezgini'ndeki yürütülebilir öğemin iş parçacığının Özellik Sayfalarında bazı değişiklikler yaptım.

Yapılandırma Özellikleri / Genel / YES'e Yönetilen Artımlı Derlemeyi Etkinleştir

Yapılandırma Özellikleri / Hata Ayıklama / Ortamı HAYIR ile Birleştir

Yapılandırma Özellikleri / C / C ++ / Tarama Bilgilerini VAR'a Etkinleştir (/ FR)

Yapılandırma Özellikleri / Bağlayıcı / VAR ile Artımlı Bağlamayı Etkinleştir (/ INCREMENTAL)

EDIT: Bu sonuncusu hile yapar

....

Yapılandırma Özellikleri / Bağlayıcı / Hata Ayıklama / Evet için Hata Ayıklama Bilgisi Oluştur (/ DEBUG)

....

Bundan sonra işe yaradı ve sembolleri iyi yükledi. Eminim yukarıdaki bir veya daha fazla benim için hile yaptı (tam olarak hangisi olduğundan emin değilim) ve sadece başkalarının bunu bilmek ve denemek istiyorum ..

Barış


1

Kesme noktalarından birini sağ tıklatıp 'Konum'u seçin. Ardından 'Kaynak kodun orijinal sürümden farklı olmasına izin ver' onay kutusunu işaretleyin


1

Visual Studio 2017 Hata ayıklama sembolü "hızlandırma" seçenekleri, seçenek özelleştirme konusunda zaten çıldırmadığınız varsayılarak:

  1. At Tools -> Options -> Debugging -> Symbols
    . "Microsoft Symbol Server" seçeneğini etkinleştirin
    b. "Sembol Önbelleğini Boşalt" ı tıklayın
    c. Sembol önbelleğinizi, C:\dbg_symbolsveya gibi kolay bulunabilecek bir noktaya ayarlayın.%USERPROFILE%\dbg_symbols
  2. Hata Ayıklamayı yeniden çalıştırdıktan sonra, tüm sembolleri bir kez, baştan sona veya mümkün olduğunca makul bir şekilde yüklemesine izin verin.

1A ve 2 en önemli adımlardır. 1B ve 1C, sembollerinizi takip etmenize yardımcı olacak faydalı değişikliklerdir.

Uygulamanız tüm sembolleri en az bir kez yükledikten ve hata ayıklama zamanından önce sona ermedikten sonra, bir sonraki hata ayıklama çalıştırıldığında bu sembollerin hızlı bir şekilde yüklenmesi gerekir.

Bir hata ayıklama işlemini iptal edersem, bu sembolleri yeniden yüklemem gerektiğini fark ettim, çünkü yeni tanıtıldığında ve aniden iptal edildiğinde "temizlendiğini" tahmin ediyorum. Bu tür bir akışın temel mantığını anlıyorum, ancak bu durumda kötü düşünülmüş gibi görünüyor.


0

Araçlar-> Seçenekler-> Hata Ayıklama-> Genel'de "ASP.NET (Chrome ve IE) için JavaScript hata ayıklamasını etkinleştir" seçeneğinin işaretini kaldırmak, VS2017 hata ayıklayıcısını önceden ayarlanmış kesme noktalarıyla başlatamama durumumu çözdü.


0

Benim için işe yarayan tek şey kod türünü değiştirmekti.

In Süreci takın penceresinden, ben değişti etmek takın: seçimdeki otomatik hata ayıklamak için kod türünü belirlemek sonra benim kırılma noktaları hit oldu.

Daha önce yalnızca Yerel kod seçildim.


0

Visual Studio'nun sembolü yüklemeye ve takılmaya benzer bir sorunu vardı.

Hata ayıklama seçeneklerinde bazı "Komut satırı bağımsız değişkenleri" ekledim ve parametrelerden biri geçersiz (bazı değerleri iletmem gerekiyor). resim açıklamasını buraya girin

Ek parametreyi kaldırdıktan sonra tekrar çalışmaya başlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.