ไม่พบหรือเปิดไฟล์ PDB ใน Visual Studio C ++ 2010


117

ฉันใช้ Visual Studio 2010 C ++ และโครงการของฉันสร้างโดยไม่มีข้อผิดพลาด แต่เมื่อฉันเรียกใช้ฉันได้รับสิ่งนี้ ฉันใช้ Windows XP

'Shaders.exe': Loaded 'C:\Documents and Settings\User\My Documents\Visual Studio        2010\Projects\Shaders\Win32\Debug\Shaders.exe', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB  file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtCored4.dll', Symbols  loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcp100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcr100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtGuid4.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comdlg32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winspool.drv', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtOpenGLd4.dll', Symbols loaded.

ขอบคุณ


2
ไม่แน่ใจว่าวิธีนี้จะช่วยแก้ปัญหาของคุณได้หรือไม่ แต่ปัญหาของฉันแก้ไขปัญหาของฉันCannot find or open the PDB fileบน Virtual C ++ 2010 Express ไปที่Tools > Options > Debugging > NativeและตรวจสอบLoad DLL Exports
อารีย์

7
โปรดทราบว่าตำแหน่งของตัวเลือกนี้มีการเปลี่ยนแปลงเมื่อ Visual Studio 2015 ตอนนี้อยู่ภายใต้Tools > Options > Debugging > General > Load dll exports (Native only)
Remko Duursma

คำตอบ:


245

PDB เป็นไฟล์ข้อมูลการดีบักที่ใช้โดย Visual Studio นี่คือ DLL ของระบบซึ่งคุณไม่มีสัญลักษณ์ดีบัก ไปที่Tools->Options->Debugging->Symbolsและเลือกช่องทำเครื่องหมาย "Microsoft Symbol Servers" Visual Studio จะดาวน์โหลด PDB โดยอัตโนมัติ หรือคุณอาจเพิกเฉยต่อคำเตือนเหล่านี้หากคุณไม่ต้องการดู call stack ที่ถูกต้องในโมดูลเหล่านี้


1
ฉันมีปัญหาเดียวกันกับฉันพยายามติดตั้ง opencv เป็น VS12 ดูเหมือนกำลังโหลดสัญลักษณ์ แต่เมื่อฉันสร้างใหม่ไม่มีการเปลี่ยนแปลง คุณมีความคิดอื่นหรือไม่ว่าทำไมสิ่งนี้จึงเกิดขึ้น?
เอจ

มันได้ผลสำหรับฉัน แต่เพียงบางส่วน ไม่สามารถโหลดสัญลักษณ์สำหรับ dlls ที่เกี่ยวข้องกับ openCV เหมือนกับ @Ege
Ruchir

1
@Ruchir คุณต้องระบุเส้นทางไปยังสัญลักษณ์ OpenCV ในกล่องโต้ตอบนั้น Microsoft Symbol Servers มีสัญลักษณ์สำหรับ Microsoft DLL เท่านั้น
พอล

ขอบคุณ @Paul ฉันไม่ได้มี OpenCV ไฟล์ PDB ที่เกี่ยวข้องและดูเหมือนว่าจะได้รับพวกเขาฉันจะต้องติดตั้ง OpenCV ใช้ CMake stackoverflow.com/a/19436870/5022962 ไม่ต้องการติดตั้ง OpenCV ใหม่แม้ว่า ....
Ruchir

\Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbolsเป็นสถานที่ทั่วไปที่สัญลักษณ์ MS ที่ดาวน์โหลดมาจะถูกเก็บไว้ อย่างไรก็ตามในช่วง 50 MB D / L สำหรับโปรเจ็กต์ของฉัน VS10 ในโหมด "นาฬิกาทราย" ไม่เคยถูกผลักไสโดย Task Manager ให้อยู่ในสถานะ "ไม่ตอบสนอง"
Laurie Stearn

50

การทำงานกับ VS 2013
ลองใช้เครื่องมือต่อไปนี้ -> ตัวเลือก -> การดีบัก -> หน้าต่างเอาต์พุต -> ข้อความโหลดโมดูล -> ปิด

มันจะปิดการแสดงโมดูลที่โหลด


6
นี่เป็นทางออกที่ดีกว่าเนื่องจากจะลบบรรทัดเหล่านี้แทนที่จะแก้ไขข้อมูลไฟล์ที่ไม่ได้โหลด PDB upvoted

การพยายามทำสิ่งนี้สภาพแวดล้อมสตูดิโอภาพเปลี่ยนสภาพแวดล้อมการมองเห็น :(
Alexander Leon VI

9
โปรดทราบว่านี่ไม่ใช่วิธีแก้ปัญหาเพียงแค่หลีกเลี่ยงปัญหาเท่านั้น
Cary Bondoc

3
@CaryBondoc ขึ้นอยู่กับสิ่งที่คุณมองว่าปัญหาเป็น ... หากปัญหาคือเสียงรบกวนที่ไม่เกี่ยวข้องจำนวนมากในเอาต์พุตอาจทำให้พลาดข้อมูลจริงได้ง่ายวิธีนี้จะดีกว่าเนื่องจากวิธีอื่นเพียงแค่เปลี่ยนคุณภาพของ เสียงรบกวนโดยแทนที่Cannot find or open the PDB fileด้วยSymbols loaded. คงจะดีไม่น้อยหากผลลัพธ์เป็นรหัสสีหรืออะไรสักอย่าง แน่นอนว่ายังมีความเสี่ยงที่จะทำสิ่งนี้และลืมไปเมื่อมันกลายเป็นเรื่องสำคัญในภายหลัง นั่นคือชีวิตของโปรแกรมเมอร์
PeterT

จะหลีกเลี่ยงการรับหน้าต่างนี้ได้อย่างไร? เมื่อฉันกด F11 บนวิธีการกรอบฉันได้รับหน้าต่างที่น่ารำคาญนี้ ฉันต้องระวังเวลากด F11 หรือกด F10 โปรดช่วย
M.kazem Akhgary

33

คำตอบของพอลถูกต้องฉันแค่วางภาพเพื่อไปที่นั่นอย่างง่ายดาย

ไปที่ Tools-> Options-> Debugging-> Symbols

กำหนดช่องทำเครื่องหมายเป็นสีแดงและจะดาวน์โหลดไฟล์ pdb จาก microsoft เมื่อคุณตั้งค่าช่องทำเครื่องหมายมันจะกำหนดเส้นทางเริ่มต้นสำหรับไฟล์ pdb ในกล่องแก้ไขด้านล่างคุณไม่จำเป็นต้องเปลี่ยนแปลง

ใส่คำอธิบายภาพที่นี่


3
ภาพหน้าจอมีประโยชน์มาก!
strarsis

4

หากคุณมีโครงการมากกว่าหนึ่งโครงการในแผนที่โครงการของคุณให้ใช้ชื่อ PathFile PDB ที่เข้ารหัสฮาร์ดเดียวกันในโครงการย่อยทั้งหมดของคุณ:

ใช้เช่น

D:\Visual Studio Projects\my_app\MyFile.pdb

อย่าใช้เช่น

$(IntDir)\MyFile.pdb

ในทุกโครงการย่อย !!!

= คอมไพเลอร์ Param / Fd


"แผนที่โครงการ" คืออะไร?
Wakan Tanka

0

สิ่งนี้อาจเกิดขึ้นได้หากคุณไม่มีสิทธิ์แก้ไขในไดเรกทอรีแคชสัญลักษณ์ที่กำหนดค่าในเครื่องมือตัวเลือกการดีบักสัญลักษณ์


0

ฉันพบปัญหาที่คล้ายกันซึ่ง Visual Studio (2017) บอกว่าไม่พบไฟล์ PDB ของโครงการของฉัน ฉันเห็นไฟล์ PDB อยู่ในเส้นทางที่ถูกต้อง ฉันต้องทำความสะอาดและสร้างโครงการใหม่จากนั้น Visual Studio ก็จำไฟล์ PDB และการดีบักทำงานได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.