Leonardo Santagada via llvm-dev
2019-Mar-18 19:52 UTC
[llvm-dev] Missing data on PDB's generated by lld
Hi, We are starting to test binaries generated by lld on windows and we notices that sometimes the visual studio debugger can't see the content of variables or gets the call stack wrong for deeply nested or complex types. Did anyone else have the same problems, or any way to try to figure out what is missing? I tried llvm-pdbutil dump -symbols but there is a lot of small diferences on pdb's generated by taking msvc C7 debug information and linking with lld and msvc generating pdbs and linking with link.exe so its hard to see any big parts missing. -- Leonardo Santagada
Zachary Turner via llvm-dev
2019-Mar-18 20:34 UTC
[llvm-dev] Missing data on PDB's generated by lld
You mentioned that the binaries are generated by LLD, I assume the object files are also generated by clang-cl? Also, is this at -O0 or something higher? A reproduction would really help, as it would allow us to investigate this on our end. Obviously your code is proprietary, but it might be possible to reconstruct a similar enough call-stack and type structure to reproduce it in a simpler program. On Mon, Mar 18, 2019 at 12:52 PM Leonardo Santagada via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Hi, > > We are starting to test binaries generated by lld on windows and we > notices that sometimes the visual studio debugger can't see the > content of variables or gets the call stack wrong for deeply nested or > complex types. Did anyone else have the same problems, or any way to > try to figure out what is missing? I tried llvm-pdbutil dump -symbols > but there is a lot of small diferences on pdb's generated by taking > msvc C7 debug information and linking with lld and msvc generating > pdbs and linking with link.exe so its hard to see any big parts > missing. > > -- > > Leonardo Santagada > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190318/918810eb/attachment.html>
Leonardo Santagada via llvm-dev
2019-Mar-18 22:35 UTC
[llvm-dev] Missing data on PDB's generated by lld
No, we use msvc cl.exe as a compiler generating C7 debug information (here is more or less our compiler options regarding optimization/debugability): /Z7 /GL- /bigobj /Zo /utf-8 /arch:AVX /std:c++14 /Zc:inline /Zc:ternary /Zc:rvalueCast /Zc:strictStrings /O2 /MD In this list the only weird one is /bigobj, my main fear is that we might get to the limit of sections on an obj and then by adding the .debug$H with llvm-objcopy we might get over the limit (I didn't see any code on the obj coff writer to deal with that). For the linker I was using: /FUNCTIONPADMIN:6 /MACHINE:X64 /DEBUG:GHASH -time /INCREMENTAL:NO But I'm going to be adding: /OPT:NOREF /OPT:NOICF because maybe the wrong callstacks might be related to ICF. I will try to get a simple test case to show this erros, but its difficult, debugging mostly works, its just on some complicated cases that it stops working, but we might be able to find a small repro case. This email was to get to know how are you all dealing with these on big projects. On Mon, Mar 18, 2019 at 9:36 PM Zachary Turner <zturner at google.com> wrote:> > You mentioned that the binaries are generated by LLD, I assume the object files are also generated by clang-cl? > > Also, is this at -O0 or something higher? > > A reproduction would really help, as it would allow us to investigate this on our end. Obviously your code is proprietary, but it might be possible to reconstruct a similar enough call-stack and type structure to reproduce it in a simpler program. > > On Mon, Mar 18, 2019 at 12:52 PM Leonardo Santagada via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> Hi, >> >> We are starting to test binaries generated by lld on windows and we >> notices that sometimes the visual studio debugger can't see the >> content of variables or gets the call stack wrong for deeply nested or >> complex types. Did anyone else have the same problems, or any way to >> try to figure out what is missing? I tried llvm-pdbutil dump -symbols >> but there is a lot of small diferences on pdb's generated by taking >> msvc C7 debug information and linking with lld and msvc generating >> pdbs and linking with link.exe so its hard to see any big parts >> missing. >> >> -- >> >> Leonardo Santagada >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- Leonardo Santagada
Possibly Parallel Threads
- Missing data on PDB's generated by lld
- [lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
- [lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
- [lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)
- [lldb-dev] Trying out lld to link windows binaries (using msvc as a compiler)