[Lldb-commits] [PATCH] D71234: [lldb/Lua] Implement a Simple Lua Script Interpreter Prototype
Pavel Labath via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Dec 10 01:20:12 PST 2019
labath added a comment.
It looks like this patch already includes some non-trivial functionality, so I think this is a good time to start figuring out how to test this. Another thing, which may not be needed straight away, but which I think we should consider pretty early is creating some sort of c++ wrappers, similar to the PythonDataObject we have for python. This is so that we don't have C error handling code everywhere, but have things wrapped in a nicer interface with `llvm::Expected`s and everything.
================
Comment at: lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp:47
+
+class IOHandlerLuaInterpreter : public IOHandler {
+public:
----------------
How much of this class is boiler plate? Can it be shared with something?
================
Comment at: lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp:159
+ const ExecuteScriptOptions &options) {
+ if (command.empty()) {
+ result->AppendError("empty command passed to lua\n");
----------------
TBH, I am not sure how useful this error really is. Presumably you will get some sort of an error from the lua interpreter if you just let this pass..
================
Comment at: lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp:167
+ // FIXME: Redirecting stdin, stdout and stderr.
+ int success = luaL_dostring(l.State(), command.data());
+ if (success == 0)
----------------
So what happens when `command` is not null terminated? I guess you ought to split this into `luaL_loadbuffer && lua_pcall`..
================
Comment at: lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp:171
+
+ result->AppendErrorWithFormat("lua failed attempting to evaluate '%s'\n",
+ command.data());
----------------
same here. You can just use `AppendErrorWithFormatv`..
Repository:
rLLDB LLDB
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71234/new/
https://reviews.llvm.org/D71234
More information about the lldb-commits
mailing list