[lldb-dev] Python API: Evaluating commands with specified language

Jason Molenda jason at molenda.com
Thu Dec 25 14:28:45 PST 2014


Hi Michail, 

Try the SBFrame::EvaluteExpression(const char *expr, const SBExpressionOptions &options) method where you've specified the language in the SBExpressionOptions object.

J

> On Dec 24, 2014, at 12:11 AM, Michail Pishchagin <mblsha at gmail.com> wrote:
> 
> Hi!
> 
> I've been trying to get https://github.com/facebook/chisel to work on Swift targets, and so far noticed one issue: while I'm stopped inside Swift code, all SBFrame.EvaluateExpression() calls are evaluated as if they're in Swift, not in Objective-C (this is what Chisel expects).
> 
> It's very easy to reproduce the issue using just default prompt:
> 
> (lldb) e (id)objc_getClass("NSClipView")
> error: <EXPR>:1:5: error: consecutive statements on a line must be separated by ';'
> (id)objc_getClass("NSClipView")
>    ^
>    ;
> 
> (lldb) script
> Python Interactive Interpreter. To exit, type 'quit()', 'exit()'.
>>>> value = lldb.frame.EvaluateExpression('(id)objc_getClass("NSClipView")')
>>>> str(value.GetError())
> 'error: <EXPR>:1:5: error: consecutive statements on a line must be separated by \';\'\n(id)objc_getClass("NSClipView")\n    ^\n    ;'
> 
> (lldb) e -l objective-c++ -- (id)objc_getClass("NSClipView")
> (id) $1 = 0x00007fff7c259440
> 
> I've looked at LLDB Python API (http://lldb.llvm.org/python_reference/), and was unable to find a way to explicitly specify a language using EvaluateExpression call. Is there a way to do so?
> 
> -Michail
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev





More information about the lldb-dev mailing list