[llvm-dev] Missing data on PDB's generated by lld

Leonardo Santagada via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 18 15:35:04 PDT 2019


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


More information about the llvm-dev mailing list