[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