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 <clayb...@gmail.com> wrote: > > On Oct 25, 2017, at 6:05 PM, Zachary Turner <ztur...@google.com> wrote: > > > > On Wed, Oct 25, 2017 at 4:59 PM Jim Ingham via Phabricator < > revi...@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 >
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits