[Lldb-commits] [PATCH] D111409: proposed support for Java interface to Scripting Bridge
David Millar via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Wed Nov 10 08:08:14 PST 2021
d-millar updated this revision to Diff 386169.
d-millar added a comment.
OK, well, took my some time but I have made an attempt to address the three areas described by Mr. Ingham:
//Support for a scripting language in lldb has three distinct pieces.
1. Making the SB API's available to the scripting languages
2. Adding all the callbacks so the scripting language can be used for breakpoint callbacks, data formatters, etc.
3. Adding a REPL for that language to the "script" command
//
With regard to #3, I had hoped JShell would work as a viable REPL. Unfortunately, it does not appear to support System.loadLibrary, which makes it somewhat useless in the current context. Because I cannot load the JNI libraries, I would not have access to the classes in the Scripting Bridge, which sort of defeats the purpose.
As an alternative, I have implemented a quasi-REPL, which allows you to compose classes, compile, and run them. The "script" command behaves for the most part like it would for Python or Lua, but have a set of /-prefixed commands, described in the initial message, that enable the extra functionality. The JShell interface is also include via those commands - perhaps loadLibrary will be supported in the future.
Anyway, let me know what you think and what else you might need for possible inclusion of this patch.
Best,
Dave
Repository:
rLLDB LLDB
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D111409/new/
https://reviews.llvm.org/D111409
Files:
lldb/CMakeLists.txt
lldb/bindings/CMakeLists.txt
lldb/bindings/java/CMakeLists.txt
lldb/bindings/java/SWIG/LldbScriptInterpreter.java
lldb/bindings/java/java-swigsafecast.swig
lldb/bindings/java/java-typemaps.swig
lldb/bindings/java/java-wrapper.swig
lldb/bindings/java/java.swig
lldb/cmake/modules/FindJavaAndSwig.cmake
lldb/cmake/modules/LLDBConfig.cmake
lldb/docs/resources/build.rst
lldb/include/lldb/Core/IOHandler.h
lldb/include/lldb/Host/Config.h.cmake
lldb/include/lldb/lldb-enumerations.h
lldb/source/API/CMakeLists.txt
lldb/source/API/SBDebugger.cpp
lldb/source/API/liblldb-private.exports
lldb/source/API/liblldb.exports
lldb/source/Commands/CommandObjectBreakpointCommand.cpp
lldb/source/Commands/CommandObjectScript.cpp
lldb/source/Commands/CommandObjectWatchpointCommand.cpp
lldb/source/Interpreter/OptionArgParser.cpp
lldb/source/Interpreter/ScriptInterpreter.cpp
lldb/source/Plugins/ScriptInterpreter/CMakeLists.txt
lldb/source/Plugins/ScriptInterpreter/Java/CMakeLists.txt
lldb/source/Plugins/ScriptInterpreter/Java/Java.cpp
lldb/source/Plugins/ScriptInterpreter/Java/Java.h
lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.cpp
lldb/source/Plugins/ScriptInterpreter/Java/ScriptInterpreterJava.h
lldb/test/CMakeLists.txt
lldb/test/Shell/ScriptInterpreter/Java/Inputs/independent_state.in
lldb/test/Shell/ScriptInterpreter/Java/Inputs/nested_sessions.in
lldb/test/Shell/ScriptInterpreter/Java/Inputs/nested_sessions_2.in
lldb/test/Shell/ScriptInterpreter/Java/Inputs/testmodule.java
lldb/test/Shell/ScriptInterpreter/Java/bindings.test
lldb/test/Shell/ScriptInterpreter/Java/breakpoint_callback.test
lldb/test/Shell/ScriptInterpreter/Java/breakpoint_function_callback.test
lldb/test/Shell/ScriptInterpreter/Java/breakpoint_oneline_callback.test
lldb/test/Shell/ScriptInterpreter/Java/command_script_import.test
lldb/test/Shell/ScriptInterpreter/Java/convenience_variables.test
lldb/test/Shell/ScriptInterpreter/Java/fail_breakpoint_oneline.test
lldb/test/Shell/ScriptInterpreter/Java/independent_state.test
lldb/test/Shell/ScriptInterpreter/Java/io.test
lldb/test/Shell/ScriptInterpreter/Java/java-python.test
lldb/test/Shell/ScriptInterpreter/Java/java.test
lldb/test/Shell/ScriptInterpreter/Java/lit.local.cfg
lldb/test/Shell/ScriptInterpreter/Java/nested_sessions.test
lldb/test/Shell/ScriptInterpreter/Java/partial_statements.test
lldb/test/Shell/ScriptInterpreter/Java/persistent_state.test
lldb/test/Shell/ScriptInterpreter/Java/print.test
lldb/test/Shell/ScriptInterpreter/Java/quit.test
lldb/test/Shell/ScriptInterpreter/Java/watchpoint_callback.test
lldb/test/Shell/lit.cfg.py
lldb/test/Shell/lit.site.cfg.py.in
lldb/test/Unit/lit.cfg.py
lldb/unittests/ScriptInterpreter/CMakeLists.txt
lldb/unittests/ScriptInterpreter/Java/CMakeLists.txt
lldb/unittests/ScriptInterpreter/Java/JavaTests.cpp
lldb/unittests/ScriptInterpreter/Java/ScriptInterpreterTests.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D111409.386169.patch
Type: text/x-patch
Size: 90781 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20211110/aa808c95/attachment-0001.bin>
More information about the lldb-commits
mailing list