From: Jonas Devlieghere Date: Sun, 21 Jun 2020 07:31:46 +0000 (-0700) Subject: [lldb/Lua] Recognize "quit" as a way to exit the script interpreter. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=1728dec255a5336303b301e26ec22eca2000b593;p=android-x86%2Fexternal-llvm-project.git [lldb/Lua] Recognize "quit" as a way to exit the script interpreter. Add a way to quit the interactive script interpreter from a shell tests. Currently, the only way (that I know) to exit the interactive Lua interpreter is to send a EOF with CTRL-D. I noticed that the embedded Python script interpreter accepts quit (while the regular python interpreter doesn't). I've added a special case to the Lua interpreter to do the same. Differential revision: https://reviews.llvm.org/D82272 --- diff --git a/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp b/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp index cbd63941799..f8fd8ff94aa 100644 --- a/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp +++ b/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp @@ -39,6 +39,11 @@ public: void IOHandlerInputComplete(IOHandler &io_handler, std::string &data) override { + if (llvm::StringRef(data).rtrim() == "quit") { + io_handler.SetIsDone(true); + return; + } + if (llvm::Error error = m_script_interpreter.GetLua().Run(data)) { *GetOutputStreamFileSP() << llvm::toString(std::move(error)); } diff --git a/lldb/test/Shell/ScriptInterpreter/Lua/quit.test b/lldb/test/Shell/ScriptInterpreter/Lua/quit.test new file mode 100644 index 00000000000..e47c66c5a10 --- /dev/null +++ b/lldb/test/Shell/ScriptInterpreter/Lua/quit.test @@ -0,0 +1,10 @@ +# REQUIRES: lua +# UNSUPPORTED: lldb-repro +# +# RUN: cat %s | %lldb --script-language lua 2>&1 | FileCheck %s +script +print(95000 + 126) +quit +target list +# CHECK: 95126 +# CHECK: No targets