llvm-project/lldb/source/Host/common
Pavel Labath 4446487d71 Improve LLDB prompt handling
Summary:
There is an issue in lldb where the command prompt can appear at the wrong time. The partial fix
we have in for this is not working all the time and is introducing unnecessary delays. This
change does:
- Change Process:SyncIOHandler to use integer start id's for synchronization to avoid it being
  confused by quick start-stop cycles. I picked this up from a suggested patch by Greg to
  lldb-dev.
- coordinates printing of asynchronous text with the iohandlers. This is also based on a
  (different) Greg's patch, but I have added stronger synchronization to it to avoid races.

Together, these changes solve the prompt problem for me on linux (both with and without libedit).
I think they should behave similarly on Mac and FreeBSD and I think they will not make matters
worse for windows.

Test Plan: Prompt comes out alright. All tests still pass on linux.

Reviewers: clayborg, emaste, zturner

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D9823

llvm-svn: 238313
2015-05-27 12:40:32 +00:00
..
Condition.cpp cleanup unreferenced functions 2014-03-20 06:08:36 +00:00
Editline.cpp Improve LLDB prompt handling 2015-05-27 12:40:32 +00:00
File.cpp Missed moving a variable during my previous revision 234455. 2015-04-09 00:12:33 +00:00
FileCache.cpp Move FileSystem functions out of Host and into their own classes. 2014-08-15 22:04:21 +00:00
FileSpec.cpp Remove trailing slash from dumping directory FileSpec. 2015-05-19 23:11:58 +00:00
FileSystem.cpp Add qModuleInfo request in order to get module information (uuid, triple,..) by module path from remote platform. 2015-02-25 22:15:44 +00:00
Host.cpp Implement PlatformWindows::GetEnvironment. 2015-05-22 19:34:17 +00:00
HostInfoBase.cpp Use /data/local/tmp as temp directory on android 2015-05-08 12:46:26 +00:00
HostNativeThreadBase.cpp Fix up the HostThread interface, making the interface simpler. 2014-09-23 18:32:09 +00:00
HostProcess.cpp Create a process launcher abstraction. 2014-10-14 21:55:08 +00:00
HostThread.cpp Change HostThread::GetNativeThread() to return a derived reference. 2014-11-17 22:42:57 +00:00
IOObject.cpp Creates a socket host object. 2014-08-06 18:16:26 +00:00
LockFileBase.cpp Use file locks to synchronize access to ModuleCache. 2015-05-07 15:28:49 +00:00
Makefile
MonitoringProcessLauncher.cpp Fix broken build after signature change of ResolveExecutable. 2014-11-17 21:30:58 +00:00
Mutex.cpp Fixing warnings shouldn't introduce a crasher. 2014-07-18 18:32:45 +00:00
NativeBreakpoint.cpp Moving header files from source/Host/common to proper location. 2015-02-03 01:51:38 +00:00
NativeBreakpointList.cpp Remove trap code from disassembly. 2015-04-29 17:24:48 +00:00
NativeProcessProtocol.cpp Prevent LLGS from crashing when exiting - make NativeProcessLinux to wait until ThreadStateCoordinator is fully stopped before entering ~NativeProcessLinux. 2015-02-19 17:58:04 +00:00
NativeRegisterContext.cpp This patch adds support for setting/clearing hardware watchpoints and breakpoints on AArch64 (Arm v8) 64-bit hardware. 2015-05-15 06:29:58 +00:00
NativeRegisterContextRegisterInfo.cpp Moving header files from source/Host/common to proper location. 2015-02-03 01:51:38 +00:00
NativeThreadProtocol.cpp Moving header files from source/Host/common to proper location. 2015-02-03 01:51:38 +00:00
NativeWatchpointList.cpp Implement setting and clearing watchpoints. 2015-02-03 01:51:47 +00:00
OptionParser.cpp Revert "Fix warnings found with clang-cl." 2015-02-25 19:52:41 +00:00
PipeBase.cpp Extend PipePosix with support for named pipes/timeout-based IO and integrate it with GDBRemoteCommunication / lldb-gdbserver - include reviews fixes. 2015-01-14 01:31:27 +00:00
ProcessRunLock.cpp MingW compilation (windows). Includes various refactoring to improve portability. 2013-08-23 12:44:05 +00:00
Socket.cpp Wrap socket error handling with SetLastError and IsInterrupted internal functions which can properly treat Windows and POSIX errors. 2015-04-10 02:31:37 +00:00
SocketAddress.cpp Fix FileSpec::GetPath to return null-terminated strings 2015-02-27 19:43:08 +00:00
SoftwareBreakpoint.cpp Fix compiler warnings regarding size_t not always being 64 bit in the printf. 2015-05-25 02:55:21 +00:00
StringConvert.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
Symbols.cpp Only check for matching arch and UUID when looking for dsym in vincinity of executable. 2015-05-21 15:44:24 +00:00
Terminal.cpp Fix warnings generated by clang-cl. 2015-04-02 20:57:38 +00:00
ThisThread.cpp Clean-up warnings on Linux/GCC 2014-09-16 06:34:29 +00:00
ThreadLauncher.cpp If lldb is being built with ASAN instrumentation, have lldb 2015-01-29 06:28:36 +00:00
TimeValue.cpp Various small changes for build of LLDB on Visual Studio 2013 RC (MSVC12) 2013-09-20 22:35:22 +00:00
XML.cpp Allow clients to get parsing errors and also fix the ApplePropertyList so it parses the structured data correctly. 2015-05-27 03:24:17 +00:00