While it doesn't make a *ton* of sense for POSIX paths to be in PDBs, it's possible to occur in real scenarios involving cross compilation. The tools need to be able to handle this, because certain types of debugging scenarios are possible without a running process and so don't necessarily require you to be on a Windows system. These include post-mortem debugging and binary forensics (e.g. using a debugger to disassemble functions and examine symbols without running the process). There's changes in clang, LLD, and lldb in this patch. After this the cross-platform disassembly and source-list tests pass on Linux.
Details
Details
- Reviewers
rnk stella.stamenova thakis - Commits
- rG5bba1cafbe04: Better support for POSIX paths in PDBs.
rGe502f8b3158e: Better support for POSIX paths in PDBs.
rLLD344377: Better support for POSIX paths in PDBs.
rL344377: Better support for POSIX paths in PDBs.
rLLDB344269: Better support for POSIX paths in PDBs.
rL344269: Better support for POSIX paths in PDBs.
rLLD344269: Better support for POSIX paths in PDBs.
Diff Detail
Diff Detail
- Repository
- rLLD LLVM Linker
Event Timeline
Comment Actions
A couple of comments, but looks good otherwise.
lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp | ||
---|---|---|
156 ↗ | (On Diff #169245) | This looks unused |
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp | ||
533 ↗ | (On Diff #169245) | Is it possible that it would start with a letter? Like D:\ etc... |
Comment Actions
I agree with the direction, but please update the commit message to make it clear what the new expected behavior of our tools is. Basically, they should generate native paths unless we have command line flags telling us to do something else.
lld/COFF/PDB.cpp | ||
---|---|---|
221–239 ↗ | (On Diff #169245) | Please clean up these comments to make it clear that we have a new, simple rule for what we're doing: Creating absolute paths that work on the linker's host filesystem. If you want any other kind of behavior, the user should use /pdbsourcepath:. |