"Couldn't find $__lldb_objc_object_check() in the module" when evaluating expressions

Hi,

i’m currently working on an LLDB-based debugger for a custom JVM that uses LLVM for AOT compilation, emitting proper DWARF information.

I have to be able to evaluate expressions to call into a few VM functions in the inferior. When working with a debug build of LLDB, expression evaluation works as expected. However, when working with release builds of LLDB, i get the following error:

“Couldn’t find $__lldb_objc_object_check() in the module”

The flags to compile LLDB via CMake are as follows:

cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86,ARM -DCMAKE_INSTALL_PREFIX=somedir/ …/extllvm/

The resulting .dylib does not contain the “$__lldb_objc_object_check” symbol. The debug binary doesn’t contain the symbol either.

I use a snapshot of LLDB and LLVM/Clang from the 11th of August. I’m building this on Mac OS X. It seems that the issue is related to ObjectiveC dynamic values, which we do not require in our project. Maybe there is a way to turn that feature off?

I’d be greatful for any hints.

Thanks,
Mario