llvm-project/lldb/source/Interpreter
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
..
Args.cpp Fixed a ton of gcc compile warnings 2015-05-13 00:25:54 +00:00
CMakeLists.txt Add the new file to the CMakeLists. This should appease the Windows bot 2015-02-20 19:54:06 +00:00
CommandHistory.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
CommandInterpreter.cpp Fixed a ton of gcc compile warnings 2015-05-13 00:25:54 +00:00
CommandObject.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectRegexCommand.cpp Abstract the details from regex.h a bit more by not allowing people to specify compile and execute flags for regular expressions. Also enable better regular expressions if they are available by check if the REG_ENHANCED is available and using it if it is. 2015-01-21 21:51:02 +00:00
CommandObjectScript.cpp Switch NULL to C++11 nullptr in source/Interpreter 2014-04-20 00:31:37 +00:00
CommandObjectScript.h Fix a few more clang (3.2) warnings on Linux: 2012-12-07 22:21:08 +00:00
CommandOptionValidators.cpp Revert "Fix broken tests due to new error output." 2014-07-09 16:31:49 +00:00
CommandReturnObject.cpp Any commands that are executed through the public interface using SBCommandInterpreter::HandleCommand() are assumed to be in non-interactive mode. 2014-07-15 00:25:59 +00:00
Makefile Start to share SWIG interface files between languages. 2015-04-24 00:38:53 +00:00
OptionGroupArchitecture.cpp Revert "Fix broken tests due to new error output." 2014-07-09 16:31:49 +00:00
OptionGroupBoolean.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupFile.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupFormat.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupOutputFile.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupPlatform.cpp Changes in 226712 needed some fixing as a platform is almost always selected and even if platform options are specified when doing a "target create" they would get ignored if a platform was already selected. 2015-01-28 01:33:37 +00:00
OptionGroupString.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupUInt64.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupUUID.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionGroupValueObjectDisplay.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
OptionGroupVariable.cpp Revert "Fix broken tests due to new error output." 2014-07-09 16:31:49 +00:00
OptionGroupWatchpoint.cpp Changed '-x'/'-xsize' to '-s'/'-size' when specifying 2015-03-26 00:42:27 +00:00
OptionValue.cpp Add an OptionValueLanguage class 2015-02-20 19:46:30 +00:00
OptionValueArch.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueArgs.cpp Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation: 2012-08-22 17:17:09 +00:00
OptionValueArray.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueBoolean.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueChar.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueDictionary.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueEnumeration.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueFileSpec.cpp Make sure to re-read the file data you can get from OptionValueFileSpec::GetFileContents(...) when the file has changed. 2015-03-06 23:46:54 +00:00
OptionValueFileSpecLIst.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueFormat.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueFormatEntity.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueLanguage.cpp Add an OptionValueLanguage class 2015-02-20 19:46:30 +00:00
OptionValuePathMappings.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueProperties.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueRegex.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueSInt64.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueString.cpp Fix use-after-free in OptionValueString. 2015-05-22 19:33:54 +00:00
OptionValueUInt64.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
OptionValueUUID.cpp Refactor OptionValue::SetValueFromCString to use llvm::StringRef 2015-02-20 11:14:59 +00:00
Options.cpp Fixed a ton of gcc compile warnings 2015-05-13 00:25:54 +00:00
Property.cpp Don't #include FormatManager.h from Debugger.h 2015-03-03 23:11:11 +00:00
PythonDataObjects.cpp Don't return nullptr when you mean to return an empty llvm::StringRef... 2015-04-30 23:45:07 +00:00
ScriptInterpreter.cpp Rework LLDB system initialization. 2015-03-31 21:03:22 +00:00
ScriptInterpreterNone.cpp Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
ScriptInterpreterPython.cpp Improve LLDB prompt handling 2015-05-27 12:40:32 +00:00
embedded_interpreter.py Continuation broken for Python scripts when using non-interactive input (Xcode for example). 2014-09-15 22:46:25 +00:00