rainers / cv2pdb

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

Anyone has tried to port this project to work on Linux? #39

Open sameehj opened 5 years ago

sameehj commented 5 years ago

Hi,

This project is great, but once your build system is on linux, then this would break the pipeline and would require windows machine just for generating the pdbs for mingw artifacts.

Did anyone attempt to port this to run on Linux before? What are the challenges in doing so?

I think that mingw can be used for getting the windows headers.

Please share your thoughts and experiences

rainers commented 5 years ago

Sorry for the late reply, it somehow slipped through the cracks.

A crucial part of the work is done by a Microsoft library (mspdb*.dll), i.e. generating the PDB file from the different pieces of debug information. I doubt that it's worthwhile reimplementing it. You might find some inspiration in LLVM/LLD, though, as these projects are actually capable of generating PDB files, too.

If you want to run this on Linux as is, reaching for wine would be my first try.

dscho commented 2 years ago

@sameehj I think this has been addressed, no? Unless you want to adapt code from https://github.com/microsoft/microsoft-pdb/ to avoid using mspdb*.dll. But that would be such a big ask that you would probably have to tackle this project yourself.

mittorn commented 1 year ago

If you want to run this on Linux as is, reaching for wine would be my first try.

seems to be completely broken. I failed to get anything except useless "cannot create PDB file" error, tried with mspdb80 form msvc8, but remember it worked successfully on 32 bit binaries few years ago, but maybe with different mspdb versions

rainers commented 1 year ago

IIRC you will also need mspdbsrv.exe and other DLLs, e.g. msobj80.dll nd mspdbcore.dll.

mittorn commented 1 year ago

It's present. And i checked it (with same libraries) on server 2008, it worked. Maybe it's wine regression as it worked few years ago (some rpcrt bug or x64-related)