[lldb-dev] --top-level doesn't work in lldb for Objective-C or Swift :(
Jim Ingham via lldb-dev
lldb-dev at lists.llvm.org
Wed Oct 5 11:03:34 PDT 2016
> On Oct 5, 2016, at 10:06 AM, Rex Fenley <rex at remind101.com> wrote:
>
> Jim,
>
> That doesn't seem to work for us. We're using lldb packaged with Xcode 8 fyi.
> (lldb) expr --top-level -- NSString *string = [NSString stringWithUTF8String: "This is a string"];
>
>
>
> ; Function Attrs: nounwind
>
> define internal void @_GLOBAL__sub_I__null_() #0 section "__TEXT,__StaticInit,regular,pure_instructions" {
>
> call void @__cxx_global_var_init()
>
> ret void
>
> }
>
>
Yes, I see that printout too, but it doesn't make the expression not work. With 8.0 I see:
(lldb) expr --top-level -- NSString *string = [NSString stringWithUTF8String: "This is a string"];
; Function Attrs: nounwind
define internal void @_GLOBAL__sub_I__null_() #0 section "__TEXT,__StaticInit,regular,pure_instructions" {
call void @__cxx_global_var_init()
ret void
}
(lldb) po string
This is a string
So the expression definitely worked.
Can you file a bug about the spammy printing? Looks like somebody left a printf in code somewhere.
Jim
> On Tue, Oct 4, 2016 at 4:09 PM, Jim Ingham <jingham at apple.com> wrote:
> This isn't an issue with ObjC support in general, but rather shows that ObjC string constants are odd beasts. You can work around this pretty easily by making dynamic strings:
>
> (lldb) expr --top-level -- NSString *string = [NSString stringWithUTF8String: "This is a string"];
> (lldb) expr string
> (__NSCFString *) $0 = 0x00000001002001b0 @"This is a string"
>
> Please file a bug about the problem with ObjC constant strings.
>
> Jim
>
>
> > On Oct 4, 2016, at 3:57 PM, Rex Fenley via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> >
> > Hey lldb team!
> >
> > I'm trying to use `expr --top-level` from lldb in Xcode but it throws errors like the following:
> >
> > (lldb) expression --top-level -- NSString *str = @"This is a string";
> > Error [IRForTarget]: Couldn't replace an Objective-C constant string with a dynamic string
> > error: cannot import unsupported AST node ObjCStringLiteral
> > error: The expression could not be prepared to run in the target
> >
> > It seems like top-level only supports raw C code and not Objective-C. Is there an option we can set to support this? Is there somewhere in lldb's source code that could help point us to fixing this?
> >
> > Thank you, you guys rule!
> >
> > --
> > Rex Fenley | IOS DEVELOPER
> >
> >
> > Remind.com | BLOG | FOLLOW US | LIKE US
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
>
>
>
>
> --
> Rex Fenley | IOS DEVELOPER
>
>
> Remind.com | BLOG | FOLLOW US | LIKE US
More information about the lldb-dev
mailing list