[lldb-dev] PDB symbol reader supports C++ only?

Vadim Chugunov via lldb-dev lldb-dev at lists.llvm.org
Tue Aug 21 19:09:31 PDT 2018


Would you mind going into a bit more detail on what sort of problems an
unknown language could cause?   I'd like to understand the issue before
jumping in to fix anything.  AFAIK, in the case of DWARF symbols, debug
info for unknown languages is still used, so it wouldn't be the first for
LLDB...

Also, the second fragment
<https://github.com/llvm-mirror/llvm/blob/baa88cf6cb85d4256bb0f806e1b4dc87b29ea98e/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp#L104>
checks for specific file extensions, which is an unreliable method, IMO,
since there's more extensions in use for c++ alone.  Code could also be
generated by a template engine, which will probably use a different
extension, etc.   I'd rather not just hardcode '.rs' for Rust.
I was hoping Aaron could commend on why this is necessary (i.e. why not
just trust the language flag?)

Thanks!

On Mon, Aug 20, 2018 at 7:35 PM Zachary Turner <zturner at google.com> wrote:

> Various parts of lldb require knowing the source language. It’s possible
> that things will mostly work if you report that the language is c++, but
> you’ll probably get errors in other areas. It goes all the way down to the
> CodeView level, where certain cv records indicate the original source
> language. Can you check cvconst.h (ships with DIA SDK) and look for the
> enumeration corresponding to source language? Does it have a value for
> Rust? I’m guessing it doesn’t. When you generate PDBs for Rust you probably
> need to put something unique value there, then we could properly set the
> language in lldb
> On Mon, Aug 20, 2018 at 7:15 PM Vadim Chugunov <vadimcn at gmail.com> wrote:
>
>> Hi!
>> I've been investigating why LLDB refuses to set breakpoints in Rust
>> source files when using PDB debug info on Windows...  This seems to stem
>> from a couple of checks here
>> <https://github.com/llvm-mirror/lldb/blob/f6f930a3608daf81441d3c9051fd9cff84eb6d58/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp#L1509>
>> and here
>> <https://github.com/llvm-mirror/llvm/blob/baa88cf6cb85d4256bb0f806e1b4dc87b29ea98e/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp#L104>.
>>
>> I am wondering, what is the backstory there?  Are those still necessary?
>> I tried disabling them and Rust debugging worked just fine...
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20180821/f3d7ba5c/attachment.html>


More information about the lldb-dev mailing list