rainers / cv2pdb

converter of DMD CodeView/DWARF debug information to PDB files
Artistic License 2.0
466 stars 110 forks source link

Cannot load PDB helper DLL #90

Open aritosteles opened 5 months ago

aritosteles commented 5 months ago

I'm trying to use cv2pdb without installing Visual studio. Because I successfully tested it in a pc with VS19 installed, I tried using the 5 files mentioned in the Installation instructions, replacing mspdb100.dll with mspdb140.dll and so on for each file, since the 100..s files are not being installed by VS19. I tried this with both 32 and 64 version of the files with no luck. Microsoft has discontinued both support and download of VS2010, so I don't know if there's a way to come by all 5 files. Can you point me to the right direction or at least tell me if there's no chance? Thanks!!

rainers commented 5 months ago

The documentation is a bit dated. When running the 64-bit version under VS2019 in a debugger, I see that cv2pdb loads

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\mspdb140.dll

and the spawned mspdbsrv.exe has these DLL dependencies:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\mspdbsrv.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\mspdbcore.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\msvcp140.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\msvcp140_atomic_wait.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\tbbmalloc.dll
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\vcruntime140.dll    
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64\msobj140.dll

Maybe a proper installation of the VC 2019 runtime is required, but I have not tested that.