[lldb-dev] Different Behavior between Terminal and GUI simulated terminal

Yin Ma yin at affinic.com
Fri Oct 4 11:08:31 PDT 2013


Hi Richard,

 

Thank you for digging down the detail for this problem. 

Hope this problem could be fixed soon.

 

Yes, we are porting our debugger GUI for GDB to support

lldb. Its existing framework is based on capturing output. 

I am writing some python commands to create a bridge to 

generate parser friendly output. I am working feature

by feature. I hope this way can  work for all features.

 

Thanks,

 

Yin 

 

From: Richard Mitton [mailto:richard at codersnotes.com] 
Sent: Friday, October 04, 2013 10:21 AM
To: jingham at apple.com
Cc: Yin Ma; lldb-dev at cs.uiuc.edu
Subject: Re: [lldb-dev] Different Behavior between Terminal and GUI simulated terminal

 

I've noticed this same bug myself, and actually spent a while this week trying to fix it (with no luck).

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.

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.

I don't have a fix for this I'm afraid.

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. 

-- 
Richard Mitton
richard at codersnotes.com






 <mailto:jingham at apple.com> jingham at apple.com

Friday, October 04, 2013 8:41 AM

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?

Jim



_______________________________________________
lldb-dev mailing list
lldb-dev at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev



 <mailto:yin at affinic.com> Yin Ma

Thursday, October 03, 2013 11:30 PM

Hi,

 

I got different behavior between run lldb under regular terminal

And GUI simulated terminal (posix_openpt or pipe based).

 

In the regular terminal:

(lldb) run

Process 10992 launched: ‘…’

Process 10992 stopped

 Thread …

 

In the GUI, If I run the same thing, I got

(lldb) run

Process 10992 launched: ‘…’

(lldb) Process 10992 stopped

 Thread …

 

There already is (lldb) after the first line.

 

My lldb is 179.5

Could anybody let me know why there is this difference? 

And How to switch to the regular mode?

 

Thanks,

 

Yin 

_______________________________________________
lldb-dev mailing list
lldb-dev at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20131004/91acbc28/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 770 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20131004/91acbc28/attachment.jpg>


More information about the lldb-dev mailing list