Closed
Description
LLVM supports a simple windows-specific debug info containing just line numbers, that works correctly in the MS debugger. @michaelwoerister knows the details.
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
michaelwoerister commentedon Dec 5, 2014
The relevant information can be found at http://clang.llvm.org/docs/MSVCCompatibility.html:
We should try and support this functionality also in
rustc
.retep998 commentedon Dec 30, 2014
This depends on adding support for
rustc
usinglink.exe
.michaelwoerister commentedon Dec 30, 2014
Yes, if you don't want to do your linking manually. I agree that if we say that we support this type of debuginfo, we should also make it as ergonomic as possible.
Manishearth commentedon Feb 18, 2015
Perhaps we can copy the .NET implementation if we want full PDB?
https://github.com/dotnet/roslyn/blob/6f35e33694ac042a93195200bf0a317826c0388f/src/Compilers/Core/Portable/PEWriter/PdbWriter.cs
https://github.com/dotnet/roslyn/tree/b6484300dfafb43af0c27e542ec457a7583e1aa8/src/Test/PdbUtilities
https://github.com/dotnet/coreclr/blob/cbf46fb0b6a0b209ed1caf4a680910b383e68cba/src/vm/compile.cpp
This probably is something LLVM needs to support.
Manishearth commentedon Feb 23, 2015
cc @metajack @larsberg
alexcrichton commentedon May 27, 2015
Assigning to @michaelwoerister, this is coming more relevant now that we have initial MSVC support!
jrmuizel commentedon May 28, 2015
FWIW, I have the beginnings of a LLVM patch for adding x86-32 FPO information for unwinding.
michaelwoerister commentedon Jun 25, 2015
Quick update: It seems that LLVM on Windows will already emit CodeView line tables alongside DWARF if debuginfo is enabled. We just have to instruct
link.exe
to convert these into a PDB file, using the /DEBUG option. In a minimal proof of concept I was able to compile a small Rust program and step through it using WinDbg.Manishearth commentedon Jun 26, 2015
Would this solve the problem? Or will we still need to rig something up for printing local vars &c?
6 remaining items