llvm-project/lldb/source/Commands
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
..
CMakeLists.txt Add language command and LanguageRuntime plugin changes to allow vending of command objects. 2015-05-04 18:39:38 +00:00
CommandCompletions.cpp Further reduce header footprint of Debugger.h. 2015-03-04 01:58:01 +00:00
CommandObjectApropos.cpp Further reduce header footprint of Debugger.h. 2015-03-04 01:58:01 +00:00
CommandObjectApropos.h Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an 2012-06-08 21:56:10 +00:00
CommandObjectArgs.cpp Don't #include FormatManager.h from Debugger.h 2015-03-03 23:11:11 +00:00
CommandObjectArgs.h Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an 2012-06-08 21:56:10 +00:00
CommandObjectBreakpoint.cpp Add --move-to-nearest-code / target.move-to-nearest-code options (attempt 2) 2015-05-18 13:41:01 +00:00
CommandObjectBreakpoint.h Add the ability to tag one or more breakpoints with a name. These 2014-12-16 23:40:14 +00:00
CommandObjectBreakpointCommand.cpp Add the ability to tag one or more breakpoints with a name. These 2014-12-16 23:40:14 +00:00
CommandObjectBreakpointCommand.h Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
CommandObjectCommands.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectCommands.h
CommandObjectDisassemble.cpp Moved Args::StringToXIntYZ to StringConvert::ToXIntYZ 2015-01-15 20:08:35 +00:00
CommandObjectDisassemble.h Change the disassemble option to specify the architecture from '-a' 2013-04-11 03:14:01 +00:00
CommandObjectExpression.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectExpression.h Allow a multi-line expression to follow expression commands with options when there is no expression following the option terminating “—“. 2014-03-13 23:42:30 +00:00
CommandObjectFrame.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectFrame.h
CommandObjectGUI.cpp Typing "gui" will crash programs that don't give LLDB a real terminal. 2015-01-14 19:45:21 +00:00
CommandObjectGUI.h Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
CommandObjectHelp.cpp Fix build after r226068: cannot initialize 'int' with 'nullptr_t' 2015-01-15 02:07:28 +00:00
CommandObjectHelp.h Three related changes to help: 2015-01-15 00:52:41 +00:00
CommandObjectLanguage.cpp Add language command and LanguageRuntime plugin changes to allow vending of command objects. 2015-05-04 18:39:38 +00:00
CommandObjectLanguage.h Add language command and LanguageRuntime plugin changes to allow vending of command objects. 2015-05-04 18:39:38 +00:00
CommandObjectLog.cpp Support for truncate/append on log files 2015-03-20 09:43:20 +00:00
CommandObjectLog.h
CommandObjectMemory.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectMemory.h
CommandObjectMultiword.cpp Factor resolution of abbreviations and aliases so that they can be tested directly. http://reviews.llvm.org/D9033 2015-04-23 20:00:25 +00:00
CommandObjectPlatform.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectPlatform.h
CommandObjectPlugin.cpp Fixed internal code to not link against and code from "lldb/API/*". 2013-12-02 19:35:49 +00:00
CommandObjectPlugin.h Implementing plugins that provide commands. 2012-09-28 23:57:51 +00:00
CommandObjectProcess.cpp Improve LLDB prompt handling 2015-05-27 12:40:32 +00:00
CommandObjectProcess.h
CommandObjectQuit.cpp Don't #include FormatManager.h from Debugger.h 2015-03-03 23:11:11 +00:00
CommandObjectQuit.h <rdar://problem/12786725> 2013-01-17 21:36:19 +00:00
CommandObjectRegister.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectRegister.h
CommandObjectSettings.cpp Further reduce header footprint of Debugger.h. 2015-03-04 01:58:01 +00:00
CommandObjectSettings.h Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an 2012-06-08 21:56:10 +00:00
CommandObjectSource.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectSource.h
CommandObjectSyntax.cpp Break out of the command word parsing loop if we hit 2014-10-17 02:10:33 +00:00
CommandObjectSyntax.h Make raw & parsed commands subclasses of CommandObject rather than having the raw version implement an 2012-06-08 21:56:10 +00:00
CommandObjectTarget.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectTarget.h
CommandObjectThread.cpp Improve LLDB prompt handling 2015-05-27 12:40:32 +00:00
CommandObjectThread.h
CommandObjectType.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectType.h
CommandObjectVersion.cpp Huge change to clean up types. 2013-07-11 22:46:58 +00:00
CommandObjectVersion.h Huge change to clean up types. 2013-07-11 22:46:58 +00:00
CommandObjectWatchpoint.cpp Add support for custom commands to set flags on themselves 2015-05-27 05:04:35 +00:00
CommandObjectWatchpoint.h Use the "last created watchpoint" rather than asserting on watchpoint commands passing no watchpoint ID. 2013-07-02 02:09:46 +00:00
CommandObjectWatchpointCommand.cpp Rework the way we pass "run multiple command" options to the various API's that 2014-10-11 00:38:27 +00:00
CommandObjectWatchpointCommand.h Merging the iohandler branch back into main. 2014-01-27 23:43:24 +00:00
Makefile Fix a few more clang (3.2) warnings on Linux: 2012-12-07 22:21:08 +00:00