A matching symbol file was not found (Cannot find/open pdb file)
Asked Answered
M

2

13

The debug point is not getting enabled when this module gets loaded. So I thought of manually loading its debug symbols .pdb file from "Debug/obj" folder.

In this case I am getting below error "A matching symbol" file was not found in this folder though that folder contains currently build file.

And also the "Symbol Load Information" contains these many directory paths.

Cannot find or open the PDB file.

PDB does not match 

Screenshot:

enter image description here

Mcauliffe answered 20/9, 2016 at 16:47 Comment(3)
It found the PDB just fine, it just isn't a match for the DLL in the Src_2\WES\WES\Debug\ directory. Just look at the timestamps on the file, high odds that the DLL is older than the PDB. Don't copy DLLs by hand. Looks like a source control problem as well with such very different directories.Easterling
Thanks Hans! Let me check your suggestion.Mcauliffe
I tried your your solution It didn't work out :(. Looks like I am still missing something.Mcauliffe
M
3

This problem is fixed by the following steps-

1) Close all the instances of VISUAL STUDIO if running and open a single instance of Visual Studio

2) Close the solution (nothing but your project) If it's already open and then re-open again

3) Clean the whole project and rebuild it.

4) and also build the project if you are getting any errors like "___.dll not found"

5) Now you are good to go and run your project

Mcauliffe answered 1/10, 2016 at 13:24 Comment(0)
E
0

After breaking my head on this, for me it happened when I configured my project to seperate binaries from objects that way:
For Output directory:

$(SolutionDir)build\bin\$(PlatformTarget)-$(Configuration)\

For Intermediate Directory:

$(SolutionDir)build\obj\$(PlatformTarget)-$(Configuration)\$(ProjectName)\

Even though the I still had the generated .pdb where my exe or trying to even load it manually, it didn't work. So I went again to Configuration Properties -> Linker -> Debugging and where the property Generate Program Database File I changed from $(OutDir)$(TargetName).pdb to $(IntDir)$(TargetName).pdb so it will throw the desired database file into the place where the objects(Intermediate Directory) are instead of where the .exe(Output directory). Hopefully that helped someone :)

Embower answered 12/4, 2018 at 14:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.