[Lldb-commits] [PATCH] D11431: Convert ScriptInterpreters to being first-class plugins

Zachary Turner zturner at google.com
Wed Jul 22 14:41:21 PDT 2015


zturner created this revision.
zturner added a reviewer: clayborg.
zturner added a subscriber: lldb-commits.

This patch converts ScriptInterpreterPython and ScriptInterpreterNone into plugins as discussed on the mailing list and in previous reviews (e.g. D10189)

This has a number of benefits:

1) Generic code no longer makes assumptions about the type of script interpreter in use.
2) All interaction between LLDB and Python is localized and isolated to the plugin.
3) A link-time dependency is removed from all lldb_private libraries to libpython.
4) lldbAPI no longer needs to do a funny dance where it initializes the interpreter with function pointers, the interpreter plugin can just bind to them directly as extern.

This patch creates a couple of new projects as well as alters the structures of some existing ones.  So I will need some help getting this working on MacOSX.  I am going to tinker with the Xcode project, but I suspect I will get stuck, so if someone can help me out I would appreciate it.

http://reviews.llvm.org/D11431

Files:
  include/lldb/API/SBCommandInterpreter.h
  include/lldb/API/SystemInitializerFull.h
  include/lldb/Core/PluginManager.h
  include/lldb/Interpreter/CommandInterpreter.h
  include/lldb/Interpreter/PythonDataObjects.h
  include/lldb/Interpreter/ScriptInterpreter.h
  include/lldb/Interpreter/ScriptInterpreterNone.h
  include/lldb/Interpreter/ScriptInterpreterPython.h
  include/lldb/Utility/PythonPointer.h
  include/lldb/lldb-forward.h
  include/lldb/lldb-private-interfaces.h
  include/lldb/lldb-python.h
  lldb.xcodeproj/project.pbxproj
  source/API/CMakeLists.txt
  source/API/SBCommandInterpreter.cpp
  source/API/SystemInitializerFull.cpp
  source/Core/PluginManager.cpp
  source/Host/macosx/HostInfoMacOSX.mm
  source/Host/posix/HostInfoPosix.cpp
  source/Initialization/SystemInitializerCommon.cpp
  source/Interpreter/CMakeLists.txt
  source/Interpreter/CommandInterpreter.cpp
  source/Interpreter/PythonDataObjects.cpp
  source/Interpreter/ScriptInterpreterNone.cpp
  source/Interpreter/ScriptInterpreterPython.cpp
  source/Plugins/CMakeLists.txt
  source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
  source/Plugins/ScriptInterpreter/CMakeLists.txt
  source/Plugins/ScriptInterpreter/None/CMakeLists.txt
  source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.cpp
  source/Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h
  source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
  source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
  source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
  source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
  source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
  source/Plugins/ScriptInterpreter/Python/lldb-python.h
  unittests/CMakeLists.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11431.30403.patch
Type: text/x-patch
Size: 387360 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150722/b80675af/attachment.bin>


More information about the lldb-commits mailing list