<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div><div>How do I ensure that I can print all local variables from within LLDB?</div><div><br></div><div>When I use LLDB, more than half the time when I try to print a local variable I get an error and “frame variable” shows the variable as being <variable not available></div><div><br></div><div>I’m compiling all of my source with “-O0 -g”.   </div><div><br></div><div>I have not been able to create a small test case where this happens - all of my attempts at small test cases print local variables just fine.</div><div><br></div><div>Here is a typical compiler invocation for my debug build:</div><div><br></div><div><div>"clang++" -x c++ -O0 -g -Warray-bounds -Wgnu-array-member-paren-init -Wno-deprecated-register -mmacosx-version-min=10.7 -fvisibility=default -std=c++11 -stdlib=libc++ -DCONFIG_VAR_COOL -DDEBUG_ASSERTS -DDEBUG_MPS_AMS_POOL -DEXPAT -DINCLUDED_FROM_CLASP -DINHERITED_FROM_SRC -DREADLINE -DUSE_BOEHM -D_ADDRESS_MODEL_64 -D_DEBUG_BUILD -D_TARGET_OS_DARWIN -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I"../../src" -I"../../src/core" -I"../../src/core/bin/boehm/clang-darwin-4.2.1/debug/link-static" -I"/Library/Frameworks/EPD64.framework/Versions/7.2/include/python2.7" -I"/Users/meister/Development/cando/clasp/build/cando.app/Contents/Resources/externals/common/include" -I"/Users/meister/Development/cando/clasp/build/cando.app/Contents/Resources/externals/release/include" -c -o "../../src/core/bin/boehm/clang-darwin-4.2.1/debug/link-static/evaluator.o" "../../src/core/<a href="http://evaluator.cc">evaluator.cc</a>"</div></div><div><br></div><div><br></div><div>Here’s an example of what I run into all the time with LLDB:</div><div><br></div><div><div><font face="Courier">frame #12: 0x000000010119800e clasp_boehm_d`core::SpecialForm_O::evaluate(mem::smart_ptr<core::Cons_O>, mem::smart_ptr<core::Environment_O>) + 542 at /Users/meister/Development/cando/clasp/src/core/../../src/core/<a href="http://specialForm.cc">specialForm.cc</a>:41</font></div><div><font face="Courier">   38  <span class="Apple-tab-span" style="white-space:pre">       </span>    T_mv SpecialForm_O::evaluate( Cons_sp args, Environment_sp environment )</font></div><div><font face="Courier">   39  <span class="Apple-tab-span" style="white-space:pre">       </span>    {_OF();</font></div><div><font face="Courier">   40  <span class="Apple-tab-span" style="white-space:pre">                </span>ASSERTP(this->_fptr!=NULL,"Functoid can not be NULL");</font></div><div><font face="Courier">-> 41  <span class="Apple-tab-span" style="white-space:pre">         </span>return (this->_fptr)(args,environment);</font></div><div><font face="Courier">   42  <span class="Apple-tab-span" style="white-space:pre">   </span>    }</font></div><div><font face="Courier">   43  <span class="Apple-tab-span" style="white-space:pre">      </span></font></div><div><font face="Courier">   44  <span class="Apple-tab-span" style="white-space:pre">     </span></font></div><div><font face="Courier">(lldb) frame variable</font></div><div><font face="Courier">frame variable</font></div><div><font face="Courier">(core::SpecialForm_O *) this = 0x00000001067d4008</font></div><div><font face="Courier">(core::Cons_sp) args = <variable not available></font></div><div><font face="Courier"><br></font></div><div><font face="Courier">(core::Environment_sp) environment = <variable not available></font></div><div><font face="Courier"><br></font></div><div><font face="Courier">(lldb) print args</font></div><div><font face="Courier">print args</font></div><div><font face="Courier">error: Couldn't materialize struct: size of variable args (8) disagrees with the ValueObject's size (0)</font></div><div><font face="Courier">Errored out in Execute, couldn't PrepareToExecuteJITExpression</font></div><div><font face="Courier">(lldb) </font></div></div>
<br><div><br></div><div><br></div></body></html>