<div dir="ltr">I was able to address the TestConvenienceVariables.py break with this patch (thanks for some clues on that, Greg!):<div><br></div><div><div><font face="courier new, monospace" size="1">Index: test/dotest.py</font></div>
<div><font face="courier new, monospace" size="1">===================================================================</font></div><div><font face="courier new, monospace" size="1">--- test/dotest.py<span class="" style="white-space:pre">     </span>(revision 200343)</font></div>
<div><font face="courier new, monospace" size="1">+++ test/dotest.py<span class="" style="white-space:pre">   </span>(working copy)</font></div><div><font face="courier new, monospace" size="1">@@ -873,10 +873,13 @@</font></div>
<div><font face="courier new, monospace" size="1">     pluginPath = os.path.join(scriptPath, 'plugins')</font></div><div><font face="courier new, monospace" size="1">     pexpectPath = os.path.join(scriptPath, 'pexpect-2.4')</font></div>
<div><font face="courier new, monospace" size="1"> </font></div><div><font face="courier new, monospace" size="1">-    # Append script dir, plugin dir, and pexpect dir to the sys.path.</font></div><div><font face="courier new, monospace" size="1">+    # Put embedded pexpect at front of the load path so we ensure we</font></div>
<div><font face="courier new, monospace" size="1">+    # use that version.</font></div><div><font face="courier new, monospace" size="1">+    sys.path.insert(0, pexpectPath)</font></div><div><font face="courier new, monospace" size="1">+</font></div>
<div><font face="courier new, monospace" size="1">+    # Append script dir and plugin dir to the sys.path.</font></div><div><font face="courier new, monospace" size="1">     sys.path.append(scriptPath)</font></div><div><font face="courier new, monospace" size="1">     sys.path.append(pluginPath)</font></div>
<div><font face="courier new, monospace" size="1">-    sys.path.append(pexpectPath)</font></div><div><font face="courier new, monospace" size="1"> </font></div><div><font face="courier new, monospace" size="1">     # This is our base name component.</font></div>
<div><font face="courier new, monospace" size="1">     base = os.path.abspath(os.path.join(scriptPath, os.pardir))</font></div><div><font face="courier new, monospace" size="1">Index: source/Interpreter/embedded_interpreter.py</font></div>
<div><font face="courier new, monospace" size="1">===================================================================</font></div><div><font face="courier new, monospace" size="1">--- source/Interpreter/embedded_interpreter.py<span class="" style="white-space:pre"> </span>(revision 200343)</font></div>
<div><font face="courier new, monospace" size="1">+++ source/Interpreter/embedded_interpreter.py<span class="" style="white-space:pre">       </span>(working copy)</font></div><div><font face="courier new, monospace" size="1">@@ -86,7 +86,7 @@</font></div>
<div><font face="courier new, monospace" size="1">                 code.interact(banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.", readfunc=readfunc_stdio, local=local_dict)</font></div>
<div><font face="courier new, monospace" size="1">         else:</font></div><div><font face="courier new, monospace" size="1">             # We have a real interactive terminal</font></div><div><font face="courier new, monospace" size="1">-            code.interact(banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.", local=local_dict)</font></div>
<div><font face="courier new, monospace" size="1">+            code.interact(banner="Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.", readfunc=readfunc_stdio, local=local_dict)</font></div>
<div><font face="courier new, monospace" size="1">     except SystemExit as e:</font></div><div><font face="courier new, monospace" size="1">         global g_builtin_override_called</font></div><div><font face="courier new, monospace" size="1">         if not g_builtin_override_called:</font></div>
<div><br></div><div><br></div><div>The other 5 still remain.</div><div><br></div><div>Looking at TestAliases.py:</div><div><div><br></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div>
<font size="1" face="courier new, monospace">python ../llvm/tools/lldb/test/dotest.py -C gcc --executable `pwd`/Debug+Asserts/bin/lldb -p TestAliases.py</font></div></div></blockquote><div><br></div><div>Yields:</div><div>
<br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font size="1" face="courier new, monospace">Ran 2 tests in 1.613s</font></div></div><div><div><font size="1" face="courier new, monospace"><br>
</font></div></div><div><div><font size="1" face="courier new, monospace">OK (skipped=1)</font></div></div><div><div><font size="1" face="courier new, monospace">Session logs for test failures/errors/unexpected successes can be found in directory '2014-01-28-15_39_58'</font></div>
</div><div><div><font size="1" face="courier new, monospace">Fatal Python error: PyEval_SaveThread: NULL tstate</font></div></div><div><div><b><font size="1" face="courier new, monospace">Aborted (core dumped)</font></b></div>
</div></blockquote><div><br></div><div>Python is dumping core at this point, it looks to be in cleanup code since the test harness already reported an OK test result.  The rest of the errors seem to be either identical or nearly identical to the trace below.  I'll have a look at the cleanup code to see what's wrong here.</div>
</div><div><br></div><div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font size="1" face="courier new, monospace">#0  0x00007f7073b52425 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64</font></div>
<div><font size="1" face="courier new, monospace">64<span class="" style="white-space:pre">   </span>../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.</font></div><div><font size="1" face="courier new, monospace">(gdb) bt</font></div>
<div><font size="1" face="courier new, monospace">#0  0x00007f7073b52425 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64</font></div><div><font size="1" face="courier new, monospace">#1  0x00007f7073b55b8b in __GI_abort () at abort.c:91</font></div>
<div><font size="1" face="courier new, monospace">#2  0x000000000053ed5d in Py_FatalError ()</font></div><div><font size="1" face="courier new, monospace">#3  0x00000000004925cf in ?? ()</font></div><div><font size="1" face="courier new, monospace">#4  0x000000000047f797 in ?? ()</font></div>
<div><font size="1" face="courier new, monospace">#5  0x00007f706e4f9059 in lldb_private::PythonObject::Reset (this=0x2899a20, py_obj=0x0)</font></div><div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/../../include/lldb/Interpreter/PythonDataObjects.h:65</font></div>
<div><font size="1" face="courier new, monospace">#6  0x00007f706e4f8fb5 in lldb_private::PythonObject::~PythonObject (this=0x2899a20, __in_chrg=<optimized out>)</font></div><div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/../../include/lldb/Interpreter/PythonDataObjects.h:51</font></div>
<div><font size="1" face="courier new, monospace">#7  0x00007f706e4fbad0 in lldb_private::ScriptInterpreterPython::~ScriptInterpreterPython (this=0x28999e0, </font></div><div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/ScriptInterpreterPython.cpp:205</font></div><div><font size="1" face="courier new, monospace">#8  0x00007f706e4fbb34 in lldb_private::ScriptInterpreterPython::~ScriptInterpreterPython (this=0x28999e0, </font></div>
<div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>)</font></div><div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/ScriptInterpreterPython.cpp:207</font></div>
<div><font size="1" face="courier new, monospace">#9  0x00007f706e429754 in std::default_delete<lldb_private::ScriptInterpreter>::operator() (this=0x256a108, </font></div><div><font size="1" face="courier new, monospace">    __ptr=0x28999e0) at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/unique_ptr.h:67</font></div>
<div><font size="1" face="courier new, monospace">#10 0x00007f706e428959 in std::unique_ptr<lldb_private::ScriptInterpreter, std::default_delete<lldb_private::ScriptInterpreter> >::~unique_ptr (this=0x256a108, __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/unique_ptr.h:184</font></div><div><font size="1" face="courier new, monospace">#11 0x00007f706e425b2b in lldb_private::CommandInterpreter::~CommandInterpreter (this=0x2569ec0, </font></div>
<div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>)</font></div><div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp:2097</font></div>
<div><font size="1" face="courier new, monospace">#12 0x00007f706e425c20 in lldb_private::CommandInterpreter::~CommandInterpreter (this=0x2569ec0, </font></div><div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp:2099</font></div><div><font size="1" face="courier new, monospace">#13 0x00007f706e2bd49a in std::default_delete<lldb_private::CommandInterpreter>::operator() (this=0x2569da8, </font></div>
<div><font size="1" face="courier new, monospace">    __ptr=0x2569ec0) at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/unique_ptr.h:67</font></div><div><font size="1" face="courier new, monospace">#14 0x00007f706e2bb9ed in std::unique_ptr<lldb_private::CommandInterpreter, std::default_delete<lldb_private::CommandInterpreter> >::~unique_ptr (this=0x2569da8, __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/unique_ptr.h:184</font></div><div><font size="1" face="courier new, monospace">#15 0x00007f706e2b3580 in lldb_private::Debugger::~Debugger (this=0x2569a10, __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Core/Debugger.cpp:668</font></div><div><font size="1" face="courier new, monospace">#16 0x00007f706e2b368e in lldb_private::Debugger::~Debugger (this=0x2569a10, __in_chrg=<optimized out>)</font></div>
<div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/Core/Debugger.cpp:671</font></div><div><font size="1" face="courier new, monospace">#17 0x00007f706e2c1cba in std::_Sp_counted_ptr<lldb_private::Debugger*, (__gnu_cxx::_Lock_policy)2>::_M_dispose</font></div>
<div><font size="1" face="courier new, monospace">    (this=0x28727f0) at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/shared_ptr_base.h:290</font></div><div><font size="1" face="courier new, monospace">#18 0x00007f706e198334 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x28727f0)</font></div>
<div><font size="1" face="courier new, monospace">    at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/shared_ptr_base.h:144</font></div><div><font size="1" face="courier new, monospace">#19 0x00007f706e197de7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x2939e78, </font></div>
<div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>) at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/shared_ptr_base.h:546</font></div><div><font size="1" face="courier new, monospace">#20 0x00007f706e19dd7c in std::__shared_ptr<lldb_private::Debugger, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr</font></div>
<div><font size="1" face="courier new, monospace">    (this=0x2939e70, __in_chrg=<optimized out>)</font></div><div><font size="1" face="courier new, monospace">    at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/shared_ptr_base.h:781</font></div>
<div><font size="1" face="courier new, monospace">#21 0x00007f706e19dd96 in std::shared_ptr<lldb_private::Debugger>::~shared_ptr (this=0x2939e70, </font></div><div><font size="1" face="courier new, monospace">    __in_chrg=<optimized out>) at /usr/local/gcc/gcc-4.8.2/include/c++/4.8.2/bits/shared_ptr.h:93</font></div>
<div><font size="1" face="courier new, monospace">#22 0x00007f706e1a7da6 in lldb::SBDebugger::~SBDebugger (this=0x2939e70, __in_chrg=<optimized out>)</font></div><div><font size="1" face="courier new, monospace">    at /mnt/ssd/work/svn/lgs/llvm/tools/lldb/source/API/SBDebugger.cpp:247</font></div>
<div><font size="1" face="courier new, monospace">---Type <return> to continue, or q <return> to quit--- </font></div><div><font size="1" face="courier new, monospace">#23 0x00007f706e4543df in _wrap_delete_SBDebugger (args=0x24df4d0) at LLDBWrapPython.cpp:14646</font></div>
<div><font size="1" face="courier new, monospace">#24 0x00000000004f7496 in PyObject_Call ()</font></div><div><font size="1" face="courier new, monospace">#25 0x00000000004f87cb in PyObject_CallFunctionObjArgs ()</font></div>
<div><font size="1" face="courier new, monospace">#26 0x00007f706e4337bd in SwigPyObject_dealloc (v=0x2a7a5d0) at LLDBWrapPython.cpp:1697</font></div><div><font size="1" face="courier new, monospace">#27 0x000000000054878d in ?? ()</font></div>
<div><font size="1" face="courier new, monospace">#28 0x000000000045d198 in ?? ()</font></div><div><font size="1" face="courier new, monospace">#29 0x0000000000555d65 in ?? ()</font></div><div><font size="1" face="courier new, monospace">#30 0x00000000004bef09 in PyDict_SetItem ()</font></div>
<div><font size="1" face="courier new, monospace">#31 0x000000000044c9b9 in _PyModule_Clear ()</font></div><div><font size="1" face="courier new, monospace">#32 0x00000000004369c8 in PyImport_Cleanup ()</font></div><div><font size="1" face="courier new, monospace">#33 0x000000000047ec4c in Py_Finalize ()</font></div>
<div><font size="1" face="courier new, monospace">#34 0x000000000047f148 in Py_Exit ()</font></div><div><font size="1" face="courier new, monospace">#35 0x000000000047f27c in ?? ()</font></div><div><font size="1" face="courier new, monospace">#36 0x0000000000424a8c in PyRun_SimpleFileExFlags ()</font></div>
<div><font size="1" face="courier new, monospace">#37 0x0000000000425cb6 in Py_Main ()</font></div><div><font size="1" face="courier new, monospace">#38 0x00007f7073b3d76d in __libc_start_main (main=0x41bb00 <main>, argc=8, ubp_av=0x7fffced281e8, </font></div>
<div><font size="1" face="courier new, monospace">    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffced281d8)</font></div><div><font size="1" face="courier new, monospace">    at libc-start.c:226</font></div>
<div><font size="1" face="courier new, monospace">#39 0x000000000041bb31 in _start ()</font></div></div><div><br></div></blockquote></div><div>I'll track this one down and will get a fix in for all of them (including the patch above) in one shot.</div>
<div><br></div><div>-Todd</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 28, 2014 at 1:42 PM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Digging through the python readline.c code, the libedit support appears to be hardcoded to working with __APPLE__ #ifdefs --- I am not seeing an easy way to build python with libedit support under Linux.<div>

<br></div><div>Any ideas here?  It's possible our issue is not so much a libedit/libreadline issue and more just faulty assumptions (possibly in Python's readline.so) about atomic operations that are causing the crash.  I was just trying to get both Python and LLDB to be using the same one.</div>
<span class="HOEnZb"><font color="#888888">
<div><br></div><div>-Todd</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 28, 2014 at 11:33 AM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Building with libreadline-dev on Ubuntu 12.04 LTS x86_64 isn't going to work.  We're using editline-specific functionality.<div>

<br></div><div>I'm going to try the other approach now, which is building and using a python that is built against libedit.</div>
</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jan 28, 2014 at 11:02 AM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Here's what I'm finding on our setup:<div><br></div><div><div style="font-family:arial,sans-serif;font-size:13px">


>> FAIL: LLDB (suite) :: TestConvenienceVariables.py (Linux<a href="http://tfiala2.mtv.corp.google.com/" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>



</div><div><br></div><div>This test is failing most of the time.  There appears to be some kind of race on the readline/libedit functionality.  The embedded python that is being tested by the script is using the system readline library, which is different than the new libedit that we're using in the lldb executable.  The embedded python is core dumping (seg fault) around reading a string.  I'm getting a back trace like so from the lldb test process that seg faulted:</div>



<div><br></div><div><font face="courier new, monospace" size="1"><span style="background-color:rgb(233,246,255)">#0  0x00007f8749507e87 in ?? () from /usr/lib/python2.7/lib-dynload</span><span style="background-color:rgb(233,246,255)">/readline.so</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#1  0x00007f874b6c3610 in PyOS_Readline () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#2  0x00007f874b640fad in ?? () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#3  0x00007f874b60c5d5 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#4  0x00007f874b5cc6b5 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#5  0x00007f874b60c650 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#6  0x00007f874b5cc6b5 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#7  0x00007f874b60c650 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#8  0x00007f874b5cc6b5 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#9  0x00007f874b60c650 in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#10 0x00007f874b60d37b in PyEval_EvalFrameEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#11 0x00007f874b5cc6b5 in PyEval_EvalCodeEx () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#12 0x00007f874b5cc9e2 in PyEval_EvalCode () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#13 0x00007f874b5cca7c in PyRun_StringFlags () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">#14 0x00007f874b5cd6cb in PyRun_SimpleStringFlags () from /usr/lib/libpython2.7.so.1.0</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#15 0x00007f874e71cbf0 in IOHandlerPythonInterpreter:</span><span style="background-color:rgb(233,246,255)">:Run (this=0x19e79c0)</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/source/Interpreter</span><span style="background-color:rgb(233,246,255)">/ScriptInterpreterPython.cpp</span><span style="background-color:rgb(233,246,255)">:747</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#16 0x00007f874e4d36bc in lldb_private::Debugger:</span><span style="background-color:rgb(233,246,255)">:ExecuteIOHanders (this=0x17cc400)</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/source/Core</span><span style="background-color:rgb(233,246,255)">/Debugger.cpp:865</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#17 0x00007f874e647c16 in lldb_private::CommandInterpret</span><span style="background-color:rgb(233,246,255)">er::RunCommandInterpreter (this=0x17e03f0,</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">   auto_handle_events=true, spawn_thread=false)</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/source/Interpreter</span><span style="background-color:rgb(233,246,255)">/CommandInterpreter.cpp:3002</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#18 0x00007f874e3c93f5 in lldb::SBDebugger::RunCommandIn</span><span style="background-color:rgb(233,246,255)">terpreter (this=0x7fff9fb8c2a0,</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">   auto_handle_events=true, spawn_thread=false)</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/source/API/SBDebug</span><span style="background-color:rgb(233,246,255)">ger.cpp:961</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#19 0x000000000040f5ae in Driver::MainLoop (this=0x7fff9fb8c280)</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/tools/driver</span><span style="background-color:rgb(233,246,255)">/Driver.cpp:946</span><br style="background-color:rgb(233,246,255)">



<span style="background-color:rgb(233,246,255)">#20 0x000000000040f8f4 in main (argc=3, argv=0x7fff9fb8c468, envp=0x7fff9fb8c488)</span><br style="background-color:rgb(233,246,255)"><span style="background-color:rgb(233,246,255)">   at /mnt/ssd/work/svn/lgs/llvm</span><span style="background-color:rgb(233,246,255)">/tools/lldb/tools/driver</span><span style="background-color:rgb(233,246,255)">/Driver.cpp:1039</span></font><br>



</div><div><br></div><div>On Ubuntu 12.04 LTS x86_64, the /usr/lib/python2.7/lib-dynload/readline.so links against GNU readline:</div><div><br></div><div><div><font size="1" face="courier new, monospace">tfiala@tfiala2:/usr/lib/python2.7/lib-dynload$ ldd readline.so</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>linux-vdso.so.1 =>  (0x00007fff137f1000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap"> </span><b>libreadline.so.6 => /lib/x86_64-linux-gnu/libreadline.so.6 (0x00007fdd7d66c000)</b></font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdd7d44f000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">     </span>libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdd7d08e000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libgcc_s.so.1 => /usr/local/gcc/gcc-current/lib64/libgcc_s.so.1 (0x00007fdd7ce78000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">      </span>libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fdd7cc51000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>/lib64/ld-linux-x86-64.so.2 (0x00007fdd7dad6000)</font></div></div><div><font size="1" face="courier new, monospace"><br></font></div>



<div>That makes me think that the embedded python interpreter is likely fighting with libedit.so in some way.  My lldb is built with the latest config-enabled <a href="http://thrysoee.dk/editline/" target="_blank">libedit</a>, as we found the Ubuntu 12.04 LTS libedit-dev package was too old for some of the newer iohandler features:</div>



<div><br></div><div><div><font size="1" face="courier new, monospace">tfiala@tfiala2:~/lldb/svn/lgs/build/Debug+Asserts/bin$ ldd lldb</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">     </span>linux-vdso.so.1 =>  (0x00007fff8c579000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span><b>libedit.so.0 => /usr/local/google/home/tfiala/lldb/tools/libedit/linux-x86_64/lib/libedit.so.0 (0x00007f00fdac3000)</b></font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>liblldb.so => /mnt/ssd/work/svn/lgs/build/Debug+Asserts/bin/./../lib/liblldb.so (0x00007f00f87c3000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">      </span>libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f00f858d000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f00f8370000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">     </span>libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f00f8148000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f00f7f40000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">       </span>libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f00f7d3c000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libstdc++.so.6 => /usr/local/gcc/gcc-current/lib64/libstdc++.so.6 (0x00007f00f7a38000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">    </span>libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f00f773c000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libgcc_s.so.1 => /usr/local/gcc/gcc-current/lib64/libgcc_s.so.1 (0x00007f00f7526000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">      </span>libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f00f7165000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f00f6f62000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f00f6a65000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f00f6843000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">     </span>libpanel.so.5 => /usr/lib/x86_64-linux-gnu/libpanel.so.5 (0x00007f00f663f000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>/lib64/ld-linux-x86-64.so.2 (0x00007f00fdcf6000)</font></div><div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">     </span>libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f00f63e0000)</font></div>



<div><font size="1" face="courier new, monospace"><span style="white-space:pre-wrap">   </span>libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f00f6005000)</font></div></div><div><font size="1" face="courier new, monospace"><br>



</font></div><div><font face="arial, helvetica, sans-serif">I'm not yet sure if this is an inherent issue with two pieces of low level code (libedit & readline) both thinking they have sole access to the input/output file descriptors (which may require them both using readline or libedit, but not both), or just a bug in assumptions on our new iohandler input handling.  I'm going to see if I can get lldb to build with readline first and see if that changes the behavior.  It may convert a seg fault into a failing test, which may be easier to diagnose, or it might outright solve the problem.  Back after I check out the readline route.</font></div>



</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jan 27, 2014 at 4:38 PM, Todd Fiala <span dir="ltr"><<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">FYI - these are the tests that are failing for me on Ubuntu 12.04 x86_64 with top of tree after the iohandler merge sync:<div>



<br></div><div><div>Failing Tests (6)</div><div>FAIL: LLDB (suite) :: TestAliases.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>




<div>FAIL: LLDB (suite) :: TestCommandScript.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div><div>



FAIL: LLDB (suite) :: TestConvenienceVariables.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>
<div>FAIL: LLDB (suite) :: TestConditionalBreak.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>



<div>FAIL: LLDB (suite) :: TestDataFormatterCategories.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>




<div>FAIL: LLDB (suite) :: TestDataFormatterGlobals.py (Linux <a href="http://tfiala2.mtv.corp.google.com" target="_blank">tfiala2.mtv.corp.google.com</a> 3.2.5-gg1336 #1 SMP Thu Aug 29 02:37:18 PDT 2013 x86_64 x86_64)</div>



</div><div><br>
</div><div>I'll start looking at those tomorrow if somebody doesn't beat me to them.</div></div><div class="gmail_extra"><div><div><br><br><div class="gmail_quote">On Mon, Jan 27, 2014 at 3:50 PM, Greg Clayton <span dir="ltr"><<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>></span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We will need everyone to make sure their buildbots are ok and get any issues fixed. This is the one and only time the input/output and error streams will be changed in this drastic of a way. The benefits are many:<br>





<br>
1 - Input/Output/Error streams are now handled as real streams not a push style input<br>
2 - auto completion in python embedded interpreter<br>
3 - multi-line input for "script" and "expression" commands now allow you to edit previous/next lines using up and down arrow keys and this makes multi-line input actually a viable thing to use<br>
4 - it is now possible to use curses to drive LLDB (please try the "gui" command)<br>
<br>
We will need to deal with and fix any buildbot failures and tests and arise now that input/output and error are correctly hooked up in all cases.<br>
<br>
Greg Clayton<br>
<br>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'">



<tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>




<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>




<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">



<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>



<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>



<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">


<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>


<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>


<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">

<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>

<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>

<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>