[lldb-dev] --top-level doesn't work in lldb for Objective-C or Swift :(
Rex Fenley via lldb-dev
lldb-dev at lists.llvm.org
Wed Oct 5 11:14:19 PDT 2016
Sure, I'll file a bug :)
Can we get --top-level to work with Swift too?
On Wed, Oct 5, 2016 at 11:03 AM, Jim Ingham <jingham at apple.com> wrote:
>
> > 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
>
>
--
Rex Fenley | IOS DEVELOPER
Remind.com <https://www.remind.com/> | BLOG <http://blog.remind.com/>
| FOLLOW
US <https://twitter.com/remindhq> | LIKE US
<https://www.facebook.com/remindhq>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20161005/63cf6c7b/attachment.html>
More information about the lldb-dev
mailing list