Soru Visual Studio 2010 neden PDB dosyalarını bulamıyor / açamıyor?


Ben VS 2010 yılında OpenCV kullanmaya çalışıyorum. Ben amatör değilim ve OpenCV wiki ilk adımları öğreniyorum. Ancak, projemde hata ayıklamaya çalışırken aşağıdaki hataları alıyorum:

'C: \ Windows \ SysWOW64 \ ntdll.dll', PDB dosyasını bulamıyor veya açamıyor   'C: \ Windows \ SysWOW64 \ kernel32.dll', PDB dosyasını bulamıyor veya açamıyor   'C: \ Windows \ SysWOW64 \ kernellbase.dll', PDB dosyasını bulamıyor veya açamıyor

Bu dosyaları doğru dizinde var, o zaman neden açamıyor? Sorunu çözmek için ne yapmalıyım?


76
2018-01-27 08:03


Menşei


"Doğru dizinde" ile ne anlamı var? PDB, DLL ile aynı klasörde mi? - harper
@harper: Söz konusu kütüphanelerin Windows sistem dosyaları olduğunu düşünürsek, PDB'ler muhtemelen sözde DLL ile aynı klasörde olmak. DLL'ler C: \ Windows \ SysWOW64 dizinindedir, ancak PDB sembolleri muhtemelen tasarlanmış sembol önbellek dizininizde olacaktır. Visual Studio hata ayıklama seçeneklerinde belirttiğiniz. - Cody Gray♦
@Cody Grey: PDB'leri dizine (el ile) kopyalayabilir misiniz, yoksa Microsoft (Kaynak) Symbol Sunucularını kullanmak için mi ihtiyacınız var? - harper
@harper: Bu şekilde çalışacak mı bilmiyorum. Visual Studio'nun PDB sembollerini bulup bulamayacağından emin değilim. olur). Ancak, lisanslamada, MS'in sembol sunucularını kullanmanız gerektiğinden eminim. PDB dosyalarını başka nasıl elde edersiniz? Bunu neden boykot etmek istediğine de emin değilim. Visual Studio'nun tüm bu işlevselliği yerleşik olarak var, o zaman neden bundan faydalanmıyorsunuz? Sembolleri yerel olarak önbelleğe almak için tasarlanmıştır, böylece her seferinde onları yeniden indirmek zorunda kalmazsınız. Artık olduğunu fark etmiyorum bile. - Cody Gray♦
@Cody Grey: Hiçbir şeyi boykot etmek istemiyorum. Hatta bu PDB'lere sahip değilim. Ama nasıl çalıştığını merak ediyorum. - harper


Cevaplar:


Önce aşağıdaki parametreleri değiştiriniz:

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

O zaman basın Ctrl+F5 ve inanılmaz şeyler göreceksiniz.


118
2017-11-15 15:12



Vaov! Bu harika oldu! Bu cevap için teşekkür ederim. Senin için +1! - Matthew Crews
Sadece açık olmak gerekirse, bu sadece sembolleri bir kez doğru olarak indirecek? Çevrimdışı çalışmama engel olmaz mı? - Seanny123
İndirmek için doğrudan bir link biliyor musunuz? İnternet erişimi olmayan kapalı bir ağda çalışıyorum. - levkaster
Şaşırtıcı, ama bu nasıl çalışıyor? Bu şeylerden bazılarını öğrenmek istiyorum - Alexander Leon VI
Euhm ... Kontrol F5 hata ayıklayıcı AFAIK'i takmıyor. Yani bu cevap noktayı kaçırıyor. - buckley


Eminim ki bunlar uyarılarHata değil. Projenizin hala iyi çalışması gerekiyor.

Ancak, her zaman derleyici uyarılarını düzeltmeye çalışmanız gerektiğinden, neler keşfedebileceğimizi görelim. OpenCV'ye hiç aşina değilim ve takip ettiğiniz wiki öğreticisiyle bağlantı kurmuyorsunuz. Ama bana problem gibi görünüyor, Windows'un 64-bit bir sürümünü çalıştırıyorsunuz (DLL dosyaları yolunda "SysWOW64" klasörü tarafından kanıtlandığı gibi), ama çalıştığınız OpenCV şeyler inşa edilmiştir 32 bit platform için. Bu nedenle, açıklandığı gibi CMake kullanarak projeyi yeniden oluşturmanız gerekebilir. İşte.

Daha spesifik olarak, listelenen dosyalar Windows sistem dosyalarıdır. PDB dosyaları, Visual Studio'nun derlenmiş kodlara adım atmanıza ve hata ayıklamanıza izin vermek için kullandığı hata ayıklama bilgilerini içerir. Kendi kodunuzu ayıklayabilmek için sistem kitaplıkları için PDB dosyalarına ihtiyacınız yok. Ama istersen yapabilirsin sembolleri indir Sistem kütüphaneleri için de. "Hata ayıklama" menüsüne gidin, "Seçenekler ve Ayarlar" a tıklayın ve "Kaynak sunucu desteğini etkinleştir" seçeneğini görene kadar sağdaki liste kutusunu aşağı kaydırın. Seçeneğin kontrol edildiğinden emin olun. Daha sonra, soldaki ağaç görünümünde, "Semboller" i tıklayın ve "Microsoft Symbol Servers" seçeneğinin seçildiğinden emin olun. İletişim kutusunu kapatmak için Tamam'ı tıklatın ve yeniden oluşturmayı deneyin.


20
2018-01-27 08:33



Denedim hala işe yaramadı. - daveomcd
Buna cevaben söylediklerime gerçekten emin değilim. Daha fazla yardım mı arıyorsunuz? Yoksa sadece bir yorum bırakıyor musunuz? Çünkü daha fazla yardım arıyorsanız, neyi açıklamak zorunda kalacaksınız kesinlikle "bunu denediğin zaman" ve "işe yaramadı" ile ne demek istediğin zaman yanlış gitti. Hepimiz programcıyız, bunun yararlı bir hata raporunun nasıl yapıldığını bilmiyorsunuz. - Cody Gray♦
Üzgünüm, nedense tüm mesajım yapıştırılmamış. Ama o zamandan beri aşağıdaki yöntemi kullanarak sabitledim. stackoverflow.com/questions/1468726/... - daveomcd


Visual Studio Topluluk Sürümü 2015

Bütün gün bu hatayı aldım. Sonunda Araçlar> İçe Aktar ve Dışa Aktar Ayarları> Tüm seçenekleri sıfırla> Genel Ayarları Sıfırla'ya gidiyorum.

Bir kez sıfırladıktan sonra Araçlar> Seçenekler> Hata Ayıklama> Semboller> bölümüne gidin. Sonra Microsoft Simge Sunucuları'nın yanındaki kutuyu işaretleyin.

Uygulamanızı hata ayıklama modunda çalıştırın ve farklı .dll dosyalarının bir demetinin Sembollerini indirdiğini söyleyen pencereler açılacaktır. Bunu yapmasına izin verin.

Tamamlandığında, tekrar çalışması gerekir.


7
2018-04-02 17:33





Bende aynı problem vardı. Bir başkasından aldığım bir projeyi derlediğimde, doğru StartUp projesini belirlemedim (çözüm gezgininde istenen başlangıç ​​projesine sağ tıklayıp "Başlangıç ​​Projesi olarak belirle" yi seçtim). Belki bu yardımcı olur, şerefe.


3
2018-02-21 12:51





İçin VS2013Kendimi burada bulduğum kullanıcılar:

Tools -> Options -> Debugging -> Symbols

Göreceksiniz ki Cache symbols in this directory: alan boş; Yolu kendiniz tarayabilir / girebilir veya devam edebilirsiniz. Load all symbols buton. "Bir simge önbellek dizini seçmediğinizden varsayılan olarak kullanılacak" bir uyarı penceresi görünecektir. Şimdi göreceksin C:\Users\XXXX\AppData\Local\Temp\SymbolCache daha önce boş olan yol alanında. Click Load all symbols ikinci kez ve sen ayarlanmalı. Tamam, sadece iyilik için, temiz ve çözümünüzü yeniden oluşturun.


2
2018-06-01 17:05





İlk iş parçacığı / başka bir olasılığa başvurarak VS açamıyor veya pdb dosyasını bulamıyorsanız, arka planda çalıştırılabilir çalıştırmanız var. Mpiexec ile çalışıyordum ve bu konuyla uğraşıyordum. Her zaman görev yöneticinizi kontrol edin ve projenizde yapacağınız herhangi bir yürütme işlemini öldürün. Bunu yaptıktan sonra hata ayıkladı veya iyi oluşturuldu.

Ayrıca, uyarıya devam etmeye çalışırsanız, kesme noktaları vurulmayacak ve geçerli yürütülebilir dosyaya sahip olmayacaktı


1
2017-07-12 22:49





Bu hataların bazen bir proje derlerken izinlerin eksikliğinden kaynaklandığını gördüm - bu yüzden düzgün çalışması için yönetici olarak çalışıyorum.


0
2018-03-31 15:27





Aynı uyarıları bende yaşıyorum. 32 ve 64 bitlik bir konu olduğundan emin değilim. Yeni sembolleri yükledim ve bazı sorunlar çözüldü, ancak OpenCV ile ilgili olanlar hala devam ediyor. Bu çözülmüş vs çözülmemiş sorun ile çıktısının bir özüdür:

'OpenCV_helloworld.exe': Yüklü   'C: \ OpenCV2.2 \ bin \ opencv_imgproc220d.dll', PDB'yi bulamıyor veya açamıyor   dosya

'OpenCV_helloworld.exe': Yüklü 'C: \ WINDOWS \ system32 \ imm32.dll',   Simgeler yüklendi (kaynak bilgileri söküldü).

Birisi soracaktır kod 0 çıkılıyor.

'[4424] OpenCV_helloworld.exe: Native' programından çıkıldı   kod 0 (0x0).


0
2018-06-25 09:32





Bende aynı problem vardı. Hata ayıklama OpenCV yürütülebilir ile birlikte gelen şeyler ile çalışmaz. kendi kasalarınızı inşa etmeniz gerekiyor.
Daha sonra Debug-> seçenekler ve ayarlar-> debug-> sembollerinde Microsoft Simge Sunucularını etkinleştirin


0
2017-12-25 15:58





Aynı konuya girdim. C ++ kodunda Birim Testimi çalıştırdığımda, "PDB dosyasını bulamıyor veya açamıyorum" diye bir hatayla karşılaştım.

Kayıtlar

Visual Studio'da Çıktı günlüğüne baktığımda, yanlış klasöre baktığını gördüm. WinUnit klasörünü yeniden adlandırmıştım, ancak WinUnit kodundaki bir şey eski klasör adını kullanarak PDB dosyasını arıyordu. Sanırım kodlanmışlar.

Sorunu Bul

WinUnit dosyalarını ilk kez indirdiğimde ve açtığımda ana klasöre "WinUnit-1.2.0909.1" adı verildi. Dosyayı açtıktan sonra, Visual Studio proje kurulumu sırasında yazmanın daha kolay olması nedeniyle klasörü "WinUnit" olarak yeniden adlandırdım. Ama görünüşe göre bu, WinUnit belgelerine göre her şeyi kursam bile, PDB dosyasını bulma yeteneğini kırdı.

Düzeltmem

Klasör adını özgün olarak değiştirdim ve işe yarıyor.

Tuhaf.


0
2018-05-15 05:55