[Lldb-commits] [PATCH] D39307: Fix global data symbol resolution

Zachary Turner via lldb-commits lldb-commits at lists.llvm.org
Thu Oct 26 09:34:06 PDT 2017


Note that $ is a valid character in a MSVC-mangled symbol name.  So, I
don't think it will work for that reason alone.  FWIW, I also don't like
the {,,} syntax very much, but if you read on there's a simpler ! syntax
that is pretty nice.

libfoo!symbolname


On Thu, Oct 26, 2017 at 9:30 AM Greg Clayton <clayborg at gmail.com> wrote:

>
> On Oct 25, 2017, at 6:05 PM, Zachary Turner <zturner at google.com> wrote:
>
>
>
> On Wed, Oct 25, 2017 at 4:59 PM Jim Ingham via Phabricator <
> reviews at reviews.llvm.org> wrote:
>
>> jingham added a comment.
>>
>> Note, BTW, we absolutely need some way to say "this symbol from this
>> library".  But first of all, if we're going to do this you need to be able
>> to mix & match within an expression which you can't do with a flag to
>> expr.   Instead you need something like:
>>
>> (lldb) expr $$MyDylib$my_symbol + $$MyOtherDylib$my_other_symbol
>>
>> That syntax is ugly, we should try to think of something better.  But the
>> main point is this should only be necessary when lldb can't find a unique
>> symbol.  When we can no intervention should be required.
>>
>
> +1, this is very useful.  The Microsoft syntax for this is here:
>
> https://docs.microsoft.com/en-us/visualstudio/debugger/context-operator-cpp
>
> Which is pretty nice imo
>
>
> The main reason for using $ decorated names is because clang will accept
> them as identifiers and ask us about them. So
> "$$MyOtherDylib$my_other_symbol" is just a valid identifier and would
> result in a find external lexical decl call that we can fill in with
> whatever we want.
>
> We don't really want to muck with clang by overloading stuff with symbols
> that would hose up clang (like the MSVC examples
> "{,,EXAMPLE.dll}SomeFunction", "EXAMPLE.dll!SomeFunction", and "{,,"a long,
> long, library name.dll"}g_Var". The { } and , characters would hose up the
> expression parser. So I would vote to use the $ decoration as Jim suggested.
>
> Greg
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20171026/dd04ded8/attachment-0001.html>


More information about the lldb-commits mailing list