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?

  rG LLVM Github Monorepo



lldb-commits mailing list

Reply via email to