[Lldb-commits] [PATCH] D37923: Implement interactive command interruption
Leonard Mosescu via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Sep 15 13:00:04 PDT 2017
lemo created this revision.
Herald added a subscriber: ki.stfu.
The core of this change is the new CommandInterpreter::m_command_state, which models the state transitions for interactive commands, including an "interrupted" state transition.
In general, command interruption requires cooperation from the code executing the command, which needs to poll for interruption requests through CommandInterpreter::WasInterrupted().
CommandInterpreter::PrintCommandOutput() implements an optionally interruptible printing of the command output, which for large outputs was likely the longest blocking part
(ex. target modules dump symtab on a complex binary could take 10+ minutes)
Also included are a few fixes in the handlers for SIGINT (thread safety and using the signal-safe _exit() instead of exit())
https://reviews.llvm.org/D37923
Files:
include/lldb/Core/IOHandler.h
include/lldb/Interpreter/CommandInterpreter.h
source/Commands/CommandObjectTarget.cpp
source/Interpreter/CommandInterpreter.cpp
tools/driver/Driver.cpp
tools/lldb-mi/MIDriverMain.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37923.115463.patch
Type: text/x-patch
Size: 10135 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20170915/a31fccef/attachment.bin>
More information about the lldb-commits
mailing list