<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        color:black;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=WordSection1>

<p class=MsoNormal><span style='color:#1F497D'>Hi Richard,<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Thank you for digging down the
detail for this problem. <o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Hope this problem could be fixed
soon.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Yes, we are porting our debugger
GUI for GDB to support<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>lldb. Its existing framework is
based on capturing output. <o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>I am writing some python commands
to create a bridge to <o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>generate parser friendly output.
I am working feature<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>by feature. I hope this way can  work
for all features.<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Thanks,<o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'>Yin <o:p></o:p></span></p>

<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Richard Mitton
[mailto:richard@codersnotes.com] <br>
<b>Sent:</b> Friday, October 04, 2013 10:21 AM<br>
<b>To:</b> jingham@apple.com<br>
<b>Cc:</b> Yin Ma; lldb-dev@cs.uiuc.edu<br>
<b>Subject:</b> Re: [lldb-dev] Different Behavior between Terminal and GUI
simulated terminal<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>I've noticed this same bug myself, and actually spent a
while this week trying to fix it (with no luck).<br>
<br>
The problem is simply a threading race condition, which manifests sometimes.
You can usually (on Linux at least) trigger it by just doing a 'run' repeatedly
until it happens.<br>
<br>
It's because the process's input reader is created asynchronously on a thread,
so isn't guaranteed to be at the top of the input stack at the time the 'run'
command has finished. So the driver may or may not try to refresh the prompt.<br>
<br>
I don't have a fix for this I'm afraid.<br>
<br>
Also, regarding the original problem, it sounds to me like you're trying to
capture the lldb output so you can build a debugger interface on top (like GDB
interfaces often work). For what it's worth, this is a really bad idea. lldb
has a C++ and Python API which are much better suited for that kind of thing. <br>
<br>
-- <br>
Richard Mitton<br>
<a href="mailto:richard@codersnotes.com">richard@codersnotes.com</a><br>
<br>
<br>
<o:p></o:p></p>

<div style='margin-left:18.75pt;margin-top:22.5pt;margin-right:18.75pt;
margin-bottom:7.5pt'>

<div style='border:none;border-top:solid #EDEEF0 1.0pt;padding:4.0pt 0in 0in 0in;
display:table'>

<div>

<p class=MsoNormal style='vertical-align:middle'><img border=0 width=25
height=25 id="_x0000_i1025" src="cid:image001.jpg@01CEC0F0.C4532370"
name=compose-unknown-contact.jpg><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='vertical-align:middle'><a
href="mailto:jingham@apple.com"><b>jingham@apple.com</b></a><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='vertical-align:middle'><span style='color:#9FA2A5'>Friday,
October 04, 2013 8:41 AM</span><o:p></o:p></p>

</div>

</div>

</div>

<div style='margin-left:.25in;margin-right:.25in'>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:#888888'>Did
you launch the two processes in the same way in both cases? It looks like in
the first instance lldb is running synchronously, and in the second instance
asynchronously. I sent a note to the list a couple of days ago describing when
lldb uses the two modes, check that and see if it explains what you are seeing.
Otherwise, this may be some bug in the input driver?<br>
<br>
Jim<o:p></o:p></span></p>

</div>

<div>

<p class=MsoNormal><span style='color:#888888'><br>
<br>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><o:p></o:p></span></p>

</div>

</div>

<div style='margin-left:18.75pt;margin-top:22.5pt;margin-right:18.75pt;
margin-bottom:7.5pt'>

<div style='border:none;border-top:solid #EDEEF0 1.0pt;padding:4.0pt 0in 0in 0in;
display:table'>

<div>

<p class=MsoNormal style='vertical-align:middle'><img border=0 width=25
height=25 id="_x0000_i1026" src="cid:image001.jpg@01CEC0F0.C4532370"
name=compose-unknown-contact.jpg><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='vertical-align:middle'><a
href="mailto:yin@affinic.com"><b>Yin Ma</b></a><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='vertical-align:middle'><span style='color:#9FA2A5'>Thursday,
October 03, 2013 11:30 PM</span><o:p></o:p></p>

</div>

</div>

</div>

<div style='margin-left:.25in;margin-right:.25in'>

<p class=MsoNormal>Hi,<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>I got different behavior between run lldb under regular
terminal<o:p></o:p></p>

<p class=MsoNormal>And GUI simulated terminal (posix_openpt or pipe based).<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>In the regular terminal:<o:p></o:p></p>

<p class=MsoNormal>(lldb) run<o:p></o:p></p>

<p class=MsoNormal>Process 10992 launched: ‘…’<o:p></o:p></p>

<p class=MsoNormal>Process 10992 stopped<o:p></o:p></p>

<p class=MsoNormal> Thread …<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>In the GUI, If I run the same thing, I got<o:p></o:p></p>

<p class=MsoNormal>(lldb) run<o:p></o:p></p>

<p class=MsoNormal>Process 10992 launched: ‘…’<o:p></o:p></p>

<p class=MsoNormal>(lldb) Process 10992 stopped<o:p></o:p></p>

<p class=MsoNormal> Thread …<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>There already is (lldb) after the first line.<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>My lldb is 179.5<o:p></o:p></p>

<p class=MsoNormal>Could anybody let me know why there is this difference? <o:p></o:p></p>

<p class=MsoNormal>And How to switch to the regular mode?<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>Thanks,<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>Yin <o:p></o:p></p>

<div>

<p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";
color:#888888'>_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><o:p></o:p></span></p>

</div>

</div>

</div>

</body>

</html>