forked from OSchip/llvm-project
![]() Added the ability for OS plug-ins to lazily populate the thread this. The python OS plug-in classes can now implement the following method: class OperatingSystemPlugin: def create_thread(self, tid, context): # Return a dictionary for a new thread to create it on demand This will add a new thread to the thread list if it doesn't already exist. The example code in lldb/examples/python/operating_system.py has been updated to show how this call us used. Cleaned up the code in PythonDataObjects.cpp/h: - renamed all classes that started with PythonData* to be Python*. - renamed PythonArray to PythonList. Cleaned up the code to use inheritance where - Centralized the code that does ref counting in the PythonObject class to a single function. - Made the "bool PythonObject::Reset(PyObject *)" function be virtual so each subclass can correctly check to ensure a PyObject is of the right type before adopting the object. - Cleaned up all APIs and added new constructors for the Python* classes to they can all construct form: - PyObject * - const PythonObject & - const lldb::ScriptInterpreterObjectSP & Cleaned up code in ScriptInterpreterPython: - Made calling python functions safer by templatizing the production of value formats. Python specifies the value formats based on built in C types (long, long long, etc), and code often uses typedefs for uint32_t, uint64_t, etc when passing arguments down to python. We will now always produce correct value formats as the templatized code will "do the right thing" all the time. - Fixed issues with the ScriptInterpreterPython::Locker where entering the session and leaving the session had a bunch of issues that could cause the "lldb" module globals lldb.debugger, lldb.target, lldb.process, lldb.thread, and lldb.frame to not be initialized. llvm-svn: 172873 |
||
---|---|---|
.. | ||
Args.cpp | ||
CommandInterpreter.cpp | ||
CommandObject.cpp | ||
CommandObjectRegexCommand.cpp | ||
CommandObjectScript.cpp | ||
CommandObjectScript.h | ||
CommandReturnObject.cpp | ||
Makefile | ||
OptionGroupArchitecture.cpp | ||
OptionGroupBoolean.cpp | ||
OptionGroupFile.cpp | ||
OptionGroupFormat.cpp | ||
OptionGroupOutputFile.cpp | ||
OptionGroupPlatform.cpp | ||
OptionGroupString.cpp | ||
OptionGroupUInt64.cpp | ||
OptionGroupUUID.cpp | ||
OptionGroupValueObjectDisplay.cpp | ||
OptionGroupVariable.cpp | ||
OptionGroupWatchpoint.cpp | ||
OptionValue.cpp | ||
OptionValueArch.cpp | ||
OptionValueArgs.cpp | ||
OptionValueArray.cpp | ||
OptionValueBoolean.cpp | ||
OptionValueDictionary.cpp | ||
OptionValueEnumeration.cpp | ||
OptionValueFileSpec.cpp | ||
OptionValueFileSpecLIst.cpp | ||
OptionValueFormat.cpp | ||
OptionValuePathMappings.cpp | ||
OptionValueProperties.cpp | ||
OptionValueRegex.cpp | ||
OptionValueSInt64.cpp | ||
OptionValueString.cpp | ||
OptionValueUInt64.cpp | ||
OptionValueUUID.cpp | ||
Options.cpp | ||
Property.cpp | ||
PythonDataObjects.cpp | ||
ScriptInterpreter.cpp | ||
ScriptInterpreterNone.cpp | ||
ScriptInterpreterPython.cpp | ||
embedded_interpreter.py |