[lldb-dev] Detection of expression language

Richard Mitton richard at codersnotes.com
Thu Oct 3 17:00:25 PDT 2013

Hi all,

The following code fails when asking lldb to run the command "(lldb) 
expr id"
     int main() {
         int id = 4;
         return 0;

The reason is because lldb tries to evaluate the expression as Objective 
C++, rather than C. And in Objective C++, "id" is a builtin type, and so 
conflicts with our local variable.

I'm thinking the correct fix is to evaluate expressions in the language 
of the current scope, but I just wanted to throw this out there and 
check before I go off and try to fix it.

One possible problem of using the current scope's language is that if 
you had a program that mixed languages (e.g. C++ and ObjC in different 
files), you wouldn't be able to evaluate any ObjC expressions while you 
were in a C++ function.

Richard Mitton
richard at codersnotes.com

More information about the lldb-dev mailing list