<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class="">On Oct 5, 2016, at 10:14 AM, Rex Fenley via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Maybe I have that incorrectly, this does seem to work when using lldb from Xcode's console. This doesn't work when typing `lldb` into the terminal and using it from there. I assumed the two were the same.</div></div></blockquote><div><br class=""></div>The same underlying debugger is used in both cases.  There can be subtle reasons for differences in behavior in the different contexts, but I don’t see how they’d apply here.  Let’s get to a specific scenario and ensure that we can resolve that for you.</div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="">On a separate note, --top-level doesn't seem to work for swift (from Xcode console lldb). We need it to work with swift for the scripts we'll be writing.</div><div class=""><p class="gmail-p1"><span class="gmail-s1"><b class="">(lldb) expr -l swift --top-level -- let i = 10</b></span></p><p class="gmail-p1"><span class="gmail-s1"><b class="">expr -l swift --top-level -- let a = i</b></span></p><p class="gmail-p1"><span class="gmail-s1">error: <EXPR>:3:9: error: use of unresolved identifier 'i'</span></p></div></div></div></blockquote><div class="">The --top-level option isn’t meaningful for Swift, so it’s completely ignored.  The less ambiguous nature of the language allows us to automatically determine what are top-level constructs and what’s intended to be evaluated in scope.  We introduced --top-level for Objective-C / C++ primarily to enable declaring functions and anything else that literally <i class="">cannot</i> be written in a local scope.</div><div class=""><br class=""></div><div class="">In your particular example the reason you can’t refer to “i” is completely unrelated.  Conceptually, every expression you evaluate is wrapped in its own scope.  So your two subsequent expressions act like this construct :</div><div class=""><br class=""></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Menlo" class="">do {</font></div></div><div class=""><font face="Menlo" class="">    let i = 10</font></div><div class=""><font face="Menlo" class="">}</font></div><div class=""><font face="Menlo" class="">do {</font></div><div class=""><font face="Menlo" class="">    let a = i</font></div><div class=""><font face="Menlo" class="">}</font></div></blockquote><br class=""><div class=""><div class="">As you can see, “i” is defined in this expression scope and then goes out of scope immediately after execution.  This is useful when you want to write a multi-line expression that introduces declarations for immediate use without having them cluttering up your namespace afterwards.  The convention used by LLDB for any declaration that you intend to use in later expressions is to prefix the name with a dollar sign.  So you can do the following:</div><div class=""><br class=""></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><div class=""><font face="Menlo" class="">(lldb) expr -l swift -- let $i = 10</font></div></div><div class=""><div class=""><font face="Menlo" class="">(lldb) expr -l swift -- let $a = i</font></div></div></blockquote><div class=""><br class=""></div><div class="">… and both “$a” and “$i" will be available in subsequent expressions.</div><div class=""><br class=""></div><div class=""><div class="" style="font-family: LucidaGrande; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><font color="#424242" class="" style="font-family: 'Lucida Grande'; font-size: x-small;">Kate Stone</font><span class="" style="font-family: 'Lucida Grande'; font-size: x-small;"> </span><font color="#009193" class="" style="font-family: 'Lucida Grande'; font-size: x-small;"><a href="mailto:k8stone@apple.com" class="">k8stone@apple.com</a></font></div><div class="" style="font-family: Times; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><font face="Lucida Grande" size="1" class=""><font color="#009193" class=""></font> Xcode <font color="#424242" class="">Low Level Tools</font></font></div><div class="" style="font-family: Times; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><font face="Lucida Grande" size="1" class=""><font color="#424242" class=""><br class=""></font></font></div><blockquote type="cite" class=""><div class=""><div class="gmail_extra" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class="gmail_quote">On Wed, Oct 5, 2016 at 10:06 AM, Rex Fenley<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:rex@remind101.com" target="_blank" class="">rex@remind101.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div dir="ltr" class="">Jim,<div class=""><br class=""></div><div class="">That doesn't seem to work for us. We're using lldb packaged with Xcode 8 fyi.</div><div class=""><span class=""><p class=""><span class="">(lldb) expr --top-level -- NSString *string = [NSString stringWithUTF8String: "This is a string"];</span></p><p class=""><span class=""></span><br class=""></p></span><p class=""><span class="">; Function Attrs: nounwind</span></p><p class=""><span class="">define internal void @_GLOBAL__sub_I__null_() #0 section "__TEXT,__StaticInit,regular,<wbr class="">pure_instructions" {</span></p><p class=""><span class=""> <span class="Apple-converted-space"> </span>call void @__cxx_global_var_init()</span></p><p class=""><span class=""> <span class="Apple-converted-space"> </span>ret void</span></p><p class=""><span class="">}</span></p></div></div><div class="gmail_extra"><div class=""><div class="h5"><br class=""><div class="gmail_quote">On Tue, Oct 4, 2016 at 4:09 PM, Jim Ingham<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:jingham@apple.com" target="_blank" class="">jingham@apple.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;">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:<br class=""><br class="">(lldb) expr --top-level -- NSString *string = [NSString stringWithUTF8String: "This is a string"];<br class="">(lldb) expr string<br class="">(__NSCFString *) $0 = 0x00000001002001b0 @"This is a string"<br class=""><br class="">Please file a bug about the problem with ObjC constant strings.<br class=""><br class="">Jim<br class=""><span class=""><br class=""><br class="">> On Oct 4, 2016, at 3:57 PM, Rex Fenley via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank" class="">lldb-dev@lists.llvm.org</a>> wrote:<br class="">><br class="">> Hey lldb team!<br class="">><br class="">> I'm trying to use `expr --top-level` from lldb in Xcode but it throws errors like the following:<br class="">><br class="">> (lldb) expression --top-level -- NSString *str = @"This is a string";<br class="">> Error [IRForTarget]: Couldn't replace an Objective-C constant string with a dynamic string<br class="">> error: cannot import unsupported AST node ObjCStringLiteral<br class="">> error: The expression could not be prepared to run in the target<br class="">><br class="">> 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?<br class="">><br class="">> Thank you, you guys rule!<br class="">><br class="">> --<br class="">> Rex Fenley  |  IOS DEVELOPER<br class="">><br class="">><br class=""></span><span class="">> <a href="http://Remind.com" class="">Remind.com</a> |  BLOG  |  FOLLOW US  |  LIKE US<br class=""></span>> ______________________________<wbr class="">_________________<br class="">> lldb-dev mailing list<br class="">><span class="Apple-converted-space"> </span><a href="mailto:lldb-dev@lists.llvm.org" target="_blank" class="">lldb-dev@lists.llvm.org</a><br class="">><span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/lldb-dev</a><br class=""><br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""></div></div><div data-smartmail="gmail_signature" class=""><div dir="ltr" class=""><span class=""><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 16px; font-family: Arial; background-color: transparent; font-style: italic; vertical-align: baseline; white-space: pre-wrap;" class="">Rex Fenley</span><span style="font-size: 16px; font-family: Arial; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">  </span><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">|</span><span style="line-height: 1.15; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">  </span><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">IOS DEVELOPER</span><br class=""></div></span><span class=""><br class=""><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""><img src="https://lh5.googleusercontent.com/xMgzw3JkFL3DLkdwyq0WxJzKs_XP57gVVCaBMvgi1FKCjSeue0xdx3JZeCWBlxN4KRHhHOfdvJbc1N-AjTwXcKIq4cjJg9H7iaFpQ8WbO4N3c9Y5dzi19cPOs_owPquuqw" width="250px;" height="53px;" style="border: none;" class=""></span></div><span class=""><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><a href="https://www.remind.com/" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Remind.com</span></a><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""> </span><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">|  </span><a href="http://blog.remind.com/" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">BLOG</span></a><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">  |  </span><a href="https://twitter.com/remindhq" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">FOLLOW US</span></a><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">  | </span><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""> </span><span style="text-decoration: underline; font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""><a href="https://www.facebook.com/remindhq" target="_blank" style="text-decoration: none;" class="">LIKE US</a></span></div></span></span></div></div></div></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><span class=""><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 16px; font-family: Arial; background-color: transparent; font-style: italic; vertical-align: baseline; white-space: pre-wrap;" class="">Rex Fenley</span><span style="font-size: 16px; font-family: Arial; background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">  </span><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">|</span><span style="line-height: 1.15; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">  </span><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); background-color: transparent; vertical-align: baseline; white-space: pre-wrap;" class="">IOS DEVELOPER</span><br class=""></div></span><span class=""><br class=""><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(153, 153, 153); vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""><img src="https://lh5.googleusercontent.com/xMgzw3JkFL3DLkdwyq0WxJzKs_XP57gVVCaBMvgi1FKCjSeue0xdx3JZeCWBlxN4KRHhHOfdvJbc1N-AjTwXcKIq4cjJg9H7iaFpQ8WbO4N3c9Y5dzi19cPOs_owPquuqw" width="250px;" height="53px;" style="border: none;" class=""></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt;" class=""><a href="https://www.remind.com/" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); font-weight: bold; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">Remind.com</span></a><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""> </span><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">|  </span><a href="http://blog.remind.com/" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">BLOG</span></a><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">  |  </span><a href="https://twitter.com/remindhq" target="_blank" style="text-decoration: none;" class=""><span style="font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); text-decoration: underline; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">FOLLOW US</span></a><span style="font-size: 11px; font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class="">  | </span><span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""> </span><span style="text-decoration: underline; font-size: 11px; font-family: Arial; color: rgb(17, 85, 204); vertical-align: baseline; white-space: pre-wrap; background-color: transparent;" class=""><a href="https://www.facebook.com/remindhq" target="_blank" style="text-decoration: none;" class="">LIKE US</a></span></div></span></div></div></div><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_______________________________________________</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">lldb-dev mailing list</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="mailto:lldb-dev@lists.llvm.org" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">lldb-dev@lists.llvm.org</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a></div></blockquote></div><br class=""></body></html>