[PATCH] D63540: Fix lookup of symbols at the same address with no size vs. size

Jason Molenda via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 3 11:29:10 PST 2019


jasonmolenda added a comment.

In D63540#1766693 <https://reviews.llvm.org/D63540#1766693>, @omjavaid wrote:

> Hi Jan,
>
> I have done further investigation on this with new ampere arm server. This problem manifests itself on all kind of Debian flavors and is not related to underlying libraries. I have tested LLDB on Arm 32bit host with Ubuntu Xenial, Bionic and Debian Buster all show same problem.
>
> Moreover this problem seems to be emerging from clang expression parser generating symbols while evaluating certain types of expressions. These symbols are rejected by expression interpreter. LLDB symtab classes are utilized for expressions as well so it is a highly likely problem so I would suggest you to investigate further on these lines
>
> For example: 
>  ./bin/lldb-dotest -p TestVirtual.py -v -t
>
> test_virtual_madness_dwarf (TestVirtual.CppVirtualMadness) fails with following error
>
> runCmd: expression a_as_A->a()
>  runCmd failed!
>  error: Can't run the expression locally: Interpreter doesn't handle one of the expression's opcodes


Hi Omair, is it possible that Process::CanJIT() is false?  I'm not super experienced with the expression engine in lldb, but this sounds like the llvm IR interpretation can't handle the expression (expected, in this case) and lldb isn't able to JIT the IR into code and run it.

The one thing that IR interpreter can't do is call external functions.  When I'm trying to debug something like this, I'll go as basic as possible -- something like "p (int)isdigit('1')" which requires that the expression be jitted, and debug from there.  Maybe this is specific to this C++ test case, but is it possible that all function calls are failing?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63540/new/

https://reviews.llvm.org/D63540





More information about the llvm-commits mailing list