[Lldb-commits] [lldb] r357034 - [Python] Remove dynamic indirection
Davide Italiano via lldb-commits
lldb-commits at lists.llvm.org
Tue Mar 26 15:51:03 PDT 2019
This is great!
On Tue, Mar 26, 2019 at 2:55 PM Jonas Devlieghere via lldb-commits
<lldb-commits at lists.llvm.org> wrote:
>
> Author: jdevlieghere
> Date: Tue Mar 26 14:57:02 2019
> New Revision: 357034
>
> URL: http://llvm.org/viewvc/llvm-project?rev=357034&view=rev
> Log:
> [Python] Remove dynamic indirection
>
> Now that the Python plugin relies on the SWIG symbols, we no longer need
> to dynamically resolve these functions.
>
> Modified:
> lldb/trunk/source/API/SystemInitializerFull.cpp
> lldb/trunk/source/API/SystemInitializerFull.h
> lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
> lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
>
> Modified: lldb/trunk/source/API/SystemInitializerFull.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SystemInitializerFull.cpp?rev=357034&r1=357033&r2=357034&view=diff
> ==============================================================================
> --- lldb/trunk/source/API/SystemInitializerFull.cpp (original)
> +++ lldb/trunk/source/API/SystemInitializerFull.cpp Tue Mar 26 14:57:02 2019
> @@ -142,7 +142,6 @@ llvm::Error SystemInitializerFull::Initi
> #endif
>
> #if !defined(LLDB_DISABLE_PYTHON)
> - ScriptInterpreterPython::InitializeSWIG();
> ScriptInterpreterPython::Initialize();
> #endif
>
>
> Modified: lldb/trunk/source/API/SystemInitializerFull.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SystemInitializerFull.h?rev=357034&r1=357033&r2=357034&view=diff
> ==============================================================================
> --- lldb/trunk/source/API/SystemInitializerFull.h (original)
> +++ lldb/trunk/source/API/SystemInitializerFull.h Tue Mar 26 14:57:02 2019
> @@ -27,9 +27,6 @@ public:
>
> llvm::Error Initialize() override;
> void Terminate() override;
> -
> -private:
> - void InitializeSWIG();
> };
>
> } // namespace lldb_private
>
> Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp?rev=357034&r1=357033&r2=357034&view=diff
> ==============================================================================
> --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (original)
> +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Tue Mar 26 14:57:02 2019
> @@ -71,10 +71,9 @@ extern "C" void init_lldb(void);
> #define LLDBSwigPyInit init_lldb
> #endif
>
> -// these are the Pythonic implementations of the required callbacks these are
> -// scripting-language specific, which is why they belong here we still need to
> -// use function pointers to them instead of relying on linkage-time resolution
> -// because the SWIG stuff and this file get built at different times
> +// These prototypes are the Pythonic implementations of the required callbacks.
> +// Although these are scripting-language specific, their definition depends on
> +// the public API.
> extern "C" bool LLDBSwigPythonBreakpointCallbackFunction(
> const char *python_function_name, const char *session_dictionary_name,
> const lldb::StackFrameSP &sb_frame,
> @@ -194,67 +193,6 @@ LLDBSWIGPython_GetDynamicSetting(void *m
>
> #endif
>
> -ScriptInterpreterPython::SWIGInitCallback
> - ScriptInterpreterPython::g_swig_init_callback = nullptr;
> -ScriptInterpreterPython::SWIGBreakpointCallbackFunction
> - ScriptInterpreterPython::g_swig_breakpoint_callback = nullptr;
> -ScriptInterpreterPython::SWIGWatchpointCallbackFunction
> - ScriptInterpreterPython::g_swig_watchpoint_callback = nullptr;
> -ScriptInterpreterPython::SWIGPythonTypeScriptCallbackFunction
> - ScriptInterpreterPython::g_swig_typescript_callback = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateSyntheticProvider
> - ScriptInterpreterPython::g_swig_synthetic_script = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateCommandObject
> - ScriptInterpreterPython::g_swig_create_cmd = nullptr;
> -ScriptInterpreterPython::SWIGPythonCalculateNumChildren
> - ScriptInterpreterPython::g_swig_calc_children = nullptr;
> -ScriptInterpreterPython::SWIGPythonGetChildAtIndex
> - ScriptInterpreterPython::g_swig_get_child_index = nullptr;
> -ScriptInterpreterPython::SWIGPythonGetIndexOfChildWithName
> - ScriptInterpreterPython::g_swig_get_index_child = nullptr;
> -ScriptInterpreterPython::SWIGPythonCastPyObjectToSBValue
> - ScriptInterpreterPython::g_swig_cast_to_sbvalue = nullptr;
> -ScriptInterpreterPython::SWIGPythonGetValueObjectSPFromSBValue
> - ScriptInterpreterPython::g_swig_get_valobj_sp_from_sbvalue = nullptr;
> -ScriptInterpreterPython::SWIGPythonUpdateSynthProviderInstance
> - ScriptInterpreterPython::g_swig_update_provider = nullptr;
> -ScriptInterpreterPython::SWIGPythonMightHaveChildrenSynthProviderInstance
> - ScriptInterpreterPython::g_swig_mighthavechildren_provider = nullptr;
> -ScriptInterpreterPython::SWIGPythonGetValueSynthProviderInstance
> - ScriptInterpreterPython::g_swig_getvalue_provider = nullptr;
> -ScriptInterpreterPython::SWIGPythonCallCommand
> - ScriptInterpreterPython::g_swig_call_command = nullptr;
> -ScriptInterpreterPython::SWIGPythonCallCommandObject
> - ScriptInterpreterPython::g_swig_call_command_object = nullptr;
> -ScriptInterpreterPython::SWIGPythonCallModuleInit
> - ScriptInterpreterPython::g_swig_call_module_init = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateOSPlugin
> - ScriptInterpreterPython::g_swig_create_os_plugin = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateFrameRecognizer
> - ScriptInterpreterPython::g_swig_create_frame_recognizer = nullptr;
> -ScriptInterpreterPython::SWIGPythonGetRecognizedArguments
> - ScriptInterpreterPython::g_swig_get_recognized_arguments = nullptr;
> -ScriptInterpreterPython::SWIGPythonScriptKeyword_Process
> - ScriptInterpreterPython::g_swig_run_script_keyword_process = nullptr;
> -ScriptInterpreterPython::SWIGPythonScriptKeyword_Thread
> - ScriptInterpreterPython::g_swig_run_script_keyword_thread = nullptr;
> -ScriptInterpreterPython::SWIGPythonScriptKeyword_Target
> - ScriptInterpreterPython::g_swig_run_script_keyword_target = nullptr;
> -ScriptInterpreterPython::SWIGPythonScriptKeyword_Frame
> - ScriptInterpreterPython::g_swig_run_script_keyword_frame = nullptr;
> -ScriptInterpreterPython::SWIGPythonScriptKeyword_Value
> - ScriptInterpreterPython::g_swig_run_script_keyword_value = nullptr;
> -ScriptInterpreterPython::SWIGPython_GetDynamicSetting
> - ScriptInterpreterPython::g_swig_plugin_get = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateScriptedThreadPlan
> - ScriptInterpreterPython::g_swig_thread_plan_script = nullptr;
> -ScriptInterpreterPython::SWIGPythonCallThreadPlan
> - ScriptInterpreterPython::g_swig_call_thread_plan = nullptr;
> -ScriptInterpreterPython::SWIGPythonCreateScriptedBreakpointResolver
> - ScriptInterpreterPython::g_swig_bkpt_resolver_script = nullptr;
> -ScriptInterpreterPython::SWIGPythonCallBreakpointResolver
> - ScriptInterpreterPython::g_swig_call_bkpt_resolver = nullptr;
> -
> static bool g_initialized = false;
>
> namespace {
> @@ -276,8 +214,7 @@ public:
> InitializePythonHome();
>
> // Register _lldb as a built-in module.
> - PyImport_AppendInittab("_lldb",
> - ScriptInterpreterPython::g_swig_init_callback);
> + PyImport_AppendInittab("_lldb", LLDBSwigPyInit);
>
> // Python < 3.2 and Python >= 3.2 reversed the ordering requirements for
> // calling `Py_Initialize` and `PyEval_InitThreads`. < 3.2 requires that you
> @@ -1678,8 +1615,8 @@ StructuredData::GenericSP ScriptInterpre
> {
> Locker py_lock(this, Locker::AcquireLock | Locker::NoSTDIN,
> Locker::FreeLock);
> - ret_val =
> - g_swig_create_frame_recognizer(class_name, m_dictionary_name.c_str());
> + ret_val = LLDBSWIGPython_CreateFrameRecognizer(class_name,
> + m_dictionary_name.c_str());
> }
>
> return StructuredData::GenericSP(new StructuredPythonObject(ret_val));
> @@ -1700,9 +1637,9 @@ lldb::ValueObjectListSP ScriptInterprete
>
> if (!implementor.IsAllocated()) return ValueObjectListSP();
>
> - PythonObject py_return(
> - PyRefType::Owned,
> - (PyObject *)g_swig_get_recognized_arguments(implementor.get(), frame_sp));
> + PythonObject py_return(PyRefType::Owned,
> + (PyObject *)LLDBSwigPython_GetRecognizedArguments(
> + implementor.get(), frame_sp));
>
> // if it fails, print the error but otherwise go on
> if (PyErr_Occurred()) {
> @@ -1715,8 +1652,8 @@ lldb::ValueObjectListSP ScriptInterprete
> for (size_t i = 0; i < result_list.GetSize(); i++) {
> PyObject *item = result_list.GetItemAtIndex(i).get();
> lldb::SBValue *sb_value_ptr =
> - (lldb::SBValue *)g_swig_cast_to_sbvalue(item);
> - auto valobj_sp = g_swig_get_valobj_sp_from_sbvalue(sb_value_ptr);
> + (lldb::SBValue *)LLDBSWIGPython_CastPyObjectToSBValue(item);
> + auto valobj_sp = LLDBSWIGPython_GetValueObjectSPFromSBValue(sb_value_ptr);
> if (valobj_sp) result->Append(valobj_sp);
> }
> return result;
> @@ -1737,8 +1674,8 @@ StructuredData::GenericSP ScriptInterpre
> {
> Locker py_lock(this, Locker::AcquireLock | Locker::NoSTDIN,
> Locker::FreeLock);
> - ret_val = g_swig_create_os_plugin(class_name, m_dictionary_name.c_str(),
> - process_sp);
> + ret_val = LLDBSWIGPythonCreateOSPlugin(
> + class_name, m_dictionary_name.c_str(), process_sp);
> }
>
> return StructuredData::GenericSP(new StructuredPythonObject(ret_val));
> @@ -2022,7 +1959,7 @@ StructuredData::ObjectSP ScriptInterpret
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
>
> - ret_val = g_swig_thread_plan_script(
> + ret_val = LLDBSwigPythonCreateScriptedThreadPlan(
> class_name, python_interpreter->m_dictionary_name.c_str(),
> thread_plan_sp);
> }
> @@ -2039,7 +1976,7 @@ bool ScriptInterpreterPython::ScriptedTh
> if (generic) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - explains_stop = g_swig_call_thread_plan(
> + explains_stop = LLDBSWIGPythonCallThreadPlan(
> generic->GetValue(), "explains_stop", event, script_error);
> if (script_error)
> return true;
> @@ -2056,8 +1993,8 @@ bool ScriptInterpreterPython::ScriptedTh
> if (generic) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - should_stop = g_swig_call_thread_plan(generic->GetValue(), "should_stop",
> - event, script_error);
> + should_stop = LLDBSWIGPythonCallThreadPlan(
> + generic->GetValue(), "should_stop", event, script_error);
> if (script_error)
> return true;
> }
> @@ -2073,8 +2010,8 @@ bool ScriptInterpreterPython::ScriptedTh
> if (generic) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - is_stale = g_swig_call_thread_plan(generic->GetValue(), "is_stale", nullptr,
> - script_error);
> + is_stale = LLDBSWIGPythonCallThreadPlan(generic->GetValue(), "is_stale",
> + nullptr, script_error);
> if (script_error)
> return true;
> }
> @@ -2090,8 +2027,8 @@ lldb::StateType ScriptInterpreterPython:
> if (generic) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - should_step = g_swig_call_thread_plan(generic->GetValue(), "should_step",
> - NULL, script_error);
> + should_step = LLDBSWIGPythonCallThreadPlan(
> + generic->GetValue(), "should_step", NULL, script_error);
> if (script_error)
> should_step = true;
> }
> @@ -2128,9 +2065,9 @@ ScriptInterpreterPython::CreateScriptedB
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
>
> - ret_val = g_swig_bkpt_resolver_script(
> - class_name, python_interpreter->m_dictionary_name.c_str(),
> - args_data, bkpt_sp);
> + ret_val = LLDBSwigPythonCreateScriptedBreakpointResolver(
> + class_name, python_interpreter->m_dictionary_name.c_str(), args_data,
> + bkpt_sp);
> }
>
> return StructuredData::GenericSP(new StructuredPythonObject(ret_val));
> @@ -2145,9 +2082,8 @@ ScriptInterpreterPython::ScriptedBreakpo
> if (implementor_sp) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - should_continue
> - = g_swig_call_bkpt_resolver(implementor_sp->GetValue(), "__callback__",
> - sym_ctx);
> + should_continue = LLDBSwigPythonCallBreakpointResolver(
> + implementor_sp->GetValue(), "__callback__", sym_ctx);
> if (PyErr_Occurred()) {
> PyErr_Print();
> PyErr_Clear();
> @@ -2163,8 +2099,8 @@ ScriptInterpreterPython::ScriptedBreakpo
> if (implementor_sp) {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - depth_as_int
> - = g_swig_call_bkpt_resolver(implementor_sp->GetValue(), "__get_depth__", nullptr);
> + depth_as_int = LLDBSwigPythonCallBreakpointResolver(
> + implementor_sp->GetValue(), "__get_depth__", nullptr);
> if (PyErr_Occurred()) {
> PyErr_Print();
> PyErr_Clear();
> @@ -2199,8 +2135,7 @@ ScriptInterpreterPython::LoadPluginModul
> StructuredData::DictionarySP ScriptInterpreterPython::GetDynamicSettings(
> StructuredData::ObjectSP plugin_module_sp, Target *target,
> const char *setting_name, lldb_private::Status &error) {
> - if (!plugin_module_sp || !target || !setting_name || !setting_name[0] ||
> - !g_swig_plugin_get)
> + if (!plugin_module_sp || !target || !setting_name || !setting_name[0])
> return StructuredData::DictionarySP();
> StructuredData::Generic *generic = plugin_module_sp->GetAsGeneric();
> if (!generic)
> @@ -2211,8 +2146,8 @@ StructuredData::DictionarySP ScriptInter
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> TargetSP target_sp(target->shared_from_this());
> reply_pyobj.Reset(PyRefType::Owned,
> - (PyObject *)g_swig_plugin_get(generic->GetValue(),
> - setting_name, target_sp));
> + (PyObject *)LLDBSWIGPython_GetDynamicSetting(
> + generic->GetValue(), setting_name, target_sp));
>
> PythonDictionary py_dict(PyRefType::Borrowed, reply_pyobj.get());
> return py_dict.CreateStructuredDictionary();
> @@ -2247,7 +2182,7 @@ ScriptInterpreterPython::CreateSynthetic
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_synthetic_script(
> + ret_val = LLDBSwigPythonCreateSyntheticProvider(
> class_name, python_interpreter->m_dictionary_name.c_str(), valobj);
> }
>
> @@ -2270,8 +2205,8 @@ ScriptInterpreterPython::CreateScriptCom
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val =
> - g_swig_create_cmd(class_name, m_dictionary_name.c_str(), debugger_sp);
> + ret_val = LLDBSwigPythonCreateCommandObject(
> + class_name, m_dictionary_name.c_str(), debugger_sp);
> }
>
> return StructuredData::GenericSP(new StructuredPythonObject(ret_val));
> @@ -2369,9 +2304,9 @@ bool ScriptInterpreterPython::GetScripte
> {
> TypeSummaryOptionsSP options_sp(new TypeSummaryOptions(options));
>
> - static Timer::Category func_cat("g_swig_typescript_callback");
> - Timer scoped_timer(func_cat, "g_swig_typescript_callback");
> - ret_val = g_swig_typescript_callback(
> + static Timer::Category func_cat("LLDBSwigPythonCallTypeScript");
> + Timer scoped_timer(func_cat, "LLDBSwigPythonCallTypeScript");
> + ret_val = LLDBSwigPythonCallTypeScript(
> python_function_name, GetSessionDictionary().get(), valobj,
> &new_callee, options_sp, retval);
> }
> @@ -2437,7 +2372,7 @@ bool ScriptInterpreterPython::Breakpoint
> Locker py_lock(python_interpreter, Locker::AcquireLock |
> Locker::InitSession |
> Locker::NoSTDIN);
> - ret_val = g_swig_breakpoint_callback(
> + ret_val = LLDBSwigPythonBreakpointCallbackFunction(
> python_function_name,
> python_interpreter->m_dictionary_name.c_str(), stop_frame_sp,
> bp_loc_sp);
> @@ -2485,7 +2420,7 @@ bool ScriptInterpreterPython::Watchpoint
> Locker py_lock(python_interpreter, Locker::AcquireLock |
> Locker::InitSession |
> Locker::NoSTDIN);
> - ret_val = g_swig_watchpoint_callback(
> + ret_val = LLDBSwigPythonWatchpointCallbackFunction(
> python_function_name,
> python_interpreter->m_dictionary_name.c_str(), stop_frame_sp,
> wp_sp);
> @@ -2510,15 +2445,12 @@ size_t ScriptInterpreterPython::Calculat
> if (!implementor)
> return 0;
>
> - if (!g_swig_calc_children)
> - return 0;
> -
> size_t ret_val = 0;
>
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_calc_children(implementor, max);
> + ret_val = LLDBSwigPython_CalculateNumChildren(implementor, max);
> }
>
> return ret_val;
> @@ -2536,22 +2468,19 @@ lldb::ValueObjectSP ScriptInterpreterPyt
> if (!implementor)
> return lldb::ValueObjectSP();
>
> - if (!g_swig_get_child_index || !g_swig_cast_to_sbvalue)
> - return lldb::ValueObjectSP();
>
> lldb::ValueObjectSP ret_val;
> -
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - void *child_ptr = g_swig_get_child_index(implementor, idx);
> + void *child_ptr = LLDBSwigPython_GetChildAtIndex(implementor, idx);
> if (child_ptr != nullptr && child_ptr != Py_None) {
> lldb::SBValue *sb_value_ptr =
> - (lldb::SBValue *)g_swig_cast_to_sbvalue(child_ptr);
> + (lldb::SBValue *)LLDBSWIGPython_CastPyObjectToSBValue(child_ptr);
> if (sb_value_ptr == nullptr)
> Py_XDECREF(child_ptr);
> else
> - ret_val = g_swig_get_valobj_sp_from_sbvalue(sb_value_ptr);
> + ret_val = LLDBSWIGPython_GetValueObjectSPFromSBValue(sb_value_ptr);
> } else {
> Py_XDECREF(child_ptr);
> }
> @@ -2572,15 +2501,12 @@ int ScriptInterpreterPython::GetIndexOfC
> if (!implementor)
> return UINT32_MAX;
>
> - if (!g_swig_get_index_child)
> - return UINT32_MAX;
> -
> int ret_val = UINT32_MAX;
>
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_get_index_child(implementor, child_name);
> + ret_val = LLDBSwigPython_GetIndexOfChildWithName(implementor, child_name);
> }
>
> return ret_val;
> @@ -2600,13 +2526,10 @@ bool ScriptInterpreterPython::UpdateSynt
> if (!implementor)
> return ret_val;
>
> - if (!g_swig_update_provider)
> - return ret_val;
> -
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_update_provider(implementor);
> + ret_val = LLDBSwigPython_UpdateSynthProviderInstance(implementor);
> }
>
> return ret_val;
> @@ -2626,13 +2549,12 @@ bool ScriptInterpreterPython::MightHaveC
> if (!implementor)
> return ret_val;
>
> - if (!g_swig_mighthavechildren_provider)
> - return ret_val;
>
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_mighthavechildren_provider(implementor);
> + ret_val =
> + LLDBSwigPython_MightHaveChildrenSynthProviderInstance(implementor);
> }
>
> return ret_val;
> @@ -2652,21 +2574,17 @@ lldb::ValueObjectSP ScriptInterpreterPyt
> if (!implementor)
> return ret_val;
>
> - if (!g_swig_getvalue_provider || !g_swig_cast_to_sbvalue ||
> - !g_swig_get_valobj_sp_from_sbvalue)
> - return ret_val;
> -
> {
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - void *child_ptr = g_swig_getvalue_provider(implementor);
> + void *child_ptr = LLDBSwigPython_GetValueSynthProviderInstance(implementor);
> if (child_ptr != nullptr && child_ptr != Py_None) {
> lldb::SBValue *sb_value_ptr =
> - (lldb::SBValue *)g_swig_cast_to_sbvalue(child_ptr);
> + (lldb::SBValue *)LLDBSWIGPython_CastPyObjectToSBValue(child_ptr);
> if (sb_value_ptr == nullptr)
> Py_XDECREF(child_ptr);
> else
> - ret_val = g_swig_get_valobj_sp_from_sbvalue(sb_value_ptr);
> + ret_val = LLDBSWIGPython_GetValueObjectSPFromSBValue(sb_value_ptr);
> } else {
> Py_XDECREF(child_ptr);
> }
> @@ -2754,15 +2672,12 @@ bool ScriptInterpreterPython::RunScriptF
> error.SetErrorString("no function to execute");
> return false;
> }
> - if (!g_swig_run_script_keyword_process) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> +
> {
> ProcessSP process_sp(process->shared_from_this());
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_run_script_keyword_process(
> + ret_val = LLDBSWIGPythonRunScriptKeywordProcess(
> impl_function, m_dictionary_name.c_str(), process_sp, output);
> if (!ret_val)
> error.SetErrorString("python script evaluation failed");
> @@ -2783,15 +2698,12 @@ bool ScriptInterpreterPython::RunScriptF
> error.SetErrorString("no function to execute");
> return false;
> }
> - if (!g_swig_run_script_keyword_thread) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> +
> {
> ThreadSP thread_sp(thread->shared_from_this());
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_run_script_keyword_thread(
> + ret_val = LLDBSWIGPythonRunScriptKeywordThread(
> impl_function, m_dictionary_name.c_str(), thread_sp, output);
> if (!ret_val)
> error.SetErrorString("python script evaluation failed");
> @@ -2812,15 +2724,12 @@ bool ScriptInterpreterPython::RunScriptF
> error.SetErrorString("no function to execute");
> return false;
> }
> - if (!g_swig_run_script_keyword_target) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> +
> {
> TargetSP target_sp(target->shared_from_this());
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_run_script_keyword_target(
> + ret_val = LLDBSWIGPythonRunScriptKeywordTarget(
> impl_function, m_dictionary_name.c_str(), target_sp, output);
> if (!ret_val)
> error.SetErrorString("python script evaluation failed");
> @@ -2841,15 +2750,12 @@ bool ScriptInterpreterPython::RunScriptF
> error.SetErrorString("no function to execute");
> return false;
> }
> - if (!g_swig_run_script_keyword_frame) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> +
> {
> StackFrameSP frame_sp(frame->shared_from_this());
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_run_script_keyword_frame(
> + ret_val = LLDBSWIGPythonRunScriptKeywordFrame(
> impl_function, m_dictionary_name.c_str(), frame_sp, output);
> if (!ret_val)
> error.SetErrorString("python script evaluation failed");
> @@ -2870,15 +2776,12 @@ bool ScriptInterpreterPython::RunScriptF
> error.SetErrorString("no function to execute");
> return false;
> }
> - if (!g_swig_run_script_keyword_value) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> +
> {
> ValueObjectSP value_sp(value->GetSP());
> Locker py_lock(this,
> Locker::AcquireLock | Locker::InitSession | Locker::NoSTDIN);
> - ret_val = g_swig_run_script_keyword_value(
> + ret_val = LLDBSWIGPythonRunScriptKeywordValue(
> impl_function, m_dictionary_name.c_str(), value_sp, output);
> if (!ret_val)
> error.SetErrorString("python script evaluation failed");
> @@ -2906,11 +2809,6 @@ bool ScriptInterpreterPython::LoadScript
> return false;
> }
>
> - if (!g_swig_call_module_init) {
> - error.SetErrorString("internal helper function missing");
> - return false;
> - }
> -
> lldb::DebuggerSP debugger_sp = m_interpreter.GetDebugger().shared_from_this();
>
> {
> @@ -3030,8 +2928,8 @@ bool ScriptInterpreterPython::LoadScript
>
> // if we are here, everything worked
> // call __lldb_init_module(debugger,dict)
> - if (!g_swig_call_module_init(basename.c_str(), m_dictionary_name.c_str(),
> - debugger_sp)) {
> + if (!LLDBSwigPythonCallModuleInit(basename.c_str(),
> + m_dictionary_name.c_str(), debugger_sp)) {
> error.SetErrorString("calling __lldb_init_module failed");
> return false;
> }
> @@ -3103,11 +3001,6 @@ bool ScriptInterpreterPython::RunScriptB
> return false;
> }
>
> - if (!g_swig_call_command) {
> - error.SetErrorString("no helper function to run scripted commands");
> - return false;
> - }
> -
> lldb::DebuggerSP debugger_sp = m_interpreter.GetDebugger().shared_from_this();
> lldb::ExecutionContextRefSP exe_ctx_ref_sp(new ExecutionContextRef(exe_ctx));
>
> @@ -3129,9 +3022,9 @@ bool ScriptInterpreterPython::RunScriptB
> SynchronicityHandler synch_handler(debugger_sp, synchronicity);
>
> std::string args_str = args.str();
> - ret_val = g_swig_call_command(impl_function, m_dictionary_name.c_str(),
> - debugger_sp, args_str.c_str(), cmd_retobj,
> - exe_ctx_ref_sp);
> + ret_val = LLDBSwigPythonCallCommand(
> + impl_function, m_dictionary_name.c_str(), debugger_sp, args_str.c_str(),
> + cmd_retobj, exe_ctx_ref_sp);
> }
>
> if (!ret_val)
> @@ -3152,11 +3045,6 @@ bool ScriptInterpreterPython::RunScriptB
> return false;
> }
>
> - if (!g_swig_call_command_object) {
> - error.SetErrorString("no helper function to run scripted commands");
> - return false;
> - }
> -
> lldb::DebuggerSP debugger_sp = m_interpreter.GetDebugger().shared_from_this();
> lldb::ExecutionContextRefSP exe_ctx_ref_sp(new ExecutionContextRef(exe_ctx));
>
> @@ -3178,9 +3066,9 @@ bool ScriptInterpreterPython::RunScriptB
> SynchronicityHandler synch_handler(debugger_sp, synchronicity);
>
> std::string args_str = args.str();
> - ret_val = g_swig_call_command_object(impl_obj_sp->GetValue(), debugger_sp,
> - args_str.c_str(), cmd_retobj,
> - exe_ctx_ref_sp);
> + ret_val = LLDBSwigPythonCallCommandObject(impl_obj_sp->GetValue(),
> + debugger_sp, args_str.c_str(),
> + cmd_retobj, exe_ctx_ref_sp);
> }
>
> if (!ret_val)
> @@ -3397,96 +3285,6 @@ ScriptInterpreterPython::AcquireInterpre
> return py_lock;
> }
>
> -void ScriptInterpreterPython::InitializeSWIG() {
> -#if !defined(LLDB_DISABLE_PYTHON)
> - InitializeInterpreter(
> - LLDBSwigPyInit, LLDBSwigPythonBreakpointCallbackFunction,
> - LLDBSwigPythonWatchpointCallbackFunction, LLDBSwigPythonCallTypeScript,
> - LLDBSwigPythonCreateSyntheticProvider, LLDBSwigPythonCreateCommandObject,
> - LLDBSwigPython_CalculateNumChildren, LLDBSwigPython_GetChildAtIndex,
> - LLDBSwigPython_GetIndexOfChildWithName,
> - LLDBSWIGPython_CastPyObjectToSBValue,
> - LLDBSWIGPython_GetValueObjectSPFromSBValue,
> - LLDBSwigPython_UpdateSynthProviderInstance,
> - LLDBSwigPython_MightHaveChildrenSynthProviderInstance,
> - LLDBSwigPython_GetValueSynthProviderInstance, LLDBSwigPythonCallCommand,
> - LLDBSwigPythonCallCommandObject, LLDBSwigPythonCallModuleInit,
> - LLDBSWIGPythonCreateOSPlugin, LLDBSWIGPython_CreateFrameRecognizer,
> - LLDBSwigPython_GetRecognizedArguments,
> - LLDBSWIGPythonRunScriptKeywordProcess,
> - LLDBSWIGPythonRunScriptKeywordThread,
> - LLDBSWIGPythonRunScriptKeywordTarget, LLDBSWIGPythonRunScriptKeywordFrame,
> - LLDBSWIGPythonRunScriptKeywordValue, LLDBSWIGPython_GetDynamicSetting,
> - LLDBSwigPythonCreateScriptedThreadPlan, LLDBSWIGPythonCallThreadPlan,
> - LLDBSwigPythonCreateScriptedBreakpointResolver,
> - LLDBSwigPythonCallBreakpointResolver);
> -#endif
> -}
> -
> -void ScriptInterpreterPython::InitializeInterpreter(
> - SWIGInitCallback swig_init_callback,
> - SWIGBreakpointCallbackFunction swig_breakpoint_callback,
> - SWIGWatchpointCallbackFunction swig_watchpoint_callback,
> - SWIGPythonTypeScriptCallbackFunction swig_typescript_callback,
> - SWIGPythonCreateSyntheticProvider swig_synthetic_script,
> - SWIGPythonCreateCommandObject swig_create_cmd,
> - SWIGPythonCalculateNumChildren swig_calc_children,
> - SWIGPythonGetChildAtIndex swig_get_child_index,
> - SWIGPythonGetIndexOfChildWithName swig_get_index_child,
> - SWIGPythonCastPyObjectToSBValue swig_cast_to_sbvalue,
> - SWIGPythonGetValueObjectSPFromSBValue swig_get_valobj_sp_from_sbvalue,
> - SWIGPythonUpdateSynthProviderInstance swig_update_provider,
> - SWIGPythonMightHaveChildrenSynthProviderInstance
> - swig_mighthavechildren_provider,
> - SWIGPythonGetValueSynthProviderInstance swig_getvalue_provider,
> - SWIGPythonCallCommand swig_call_command,
> - SWIGPythonCallCommandObject swig_call_command_object,
> - SWIGPythonCallModuleInit swig_call_module_init,
> - SWIGPythonCreateOSPlugin swig_create_os_plugin,
> - SWIGPythonCreateFrameRecognizer swig_create_frame_recognizer,
> - SWIGPythonGetRecognizedArguments swig_get_recognized_arguments,
> - SWIGPythonScriptKeyword_Process swig_run_script_keyword_process,
> - SWIGPythonScriptKeyword_Thread swig_run_script_keyword_thread,
> - SWIGPythonScriptKeyword_Target swig_run_script_keyword_target,
> - SWIGPythonScriptKeyword_Frame swig_run_script_keyword_frame,
> - SWIGPythonScriptKeyword_Value swig_run_script_keyword_value,
> - SWIGPython_GetDynamicSetting swig_plugin_get,
> - SWIGPythonCreateScriptedThreadPlan swig_thread_plan_script,
> - SWIGPythonCallThreadPlan swig_call_thread_plan,
> - SWIGPythonCreateScriptedBreakpointResolver swig_bkpt_resolver_script,
> - SWIGPythonCallBreakpointResolver swig_call_bkpt_resolver) {
> - g_swig_init_callback = swig_init_callback;
> - g_swig_breakpoint_callback = swig_breakpoint_callback;
> - g_swig_watchpoint_callback = swig_watchpoint_callback;
> - g_swig_typescript_callback = swig_typescript_callback;
> - g_swig_synthetic_script = swig_synthetic_script;
> - g_swig_create_cmd = swig_create_cmd;
> - g_swig_calc_children = swig_calc_children;
> - g_swig_get_child_index = swig_get_child_index;
> - g_swig_get_index_child = swig_get_index_child;
> - g_swig_cast_to_sbvalue = swig_cast_to_sbvalue;
> - g_swig_get_valobj_sp_from_sbvalue = swig_get_valobj_sp_from_sbvalue;
> - g_swig_update_provider = swig_update_provider;
> - g_swig_mighthavechildren_provider = swig_mighthavechildren_provider;
> - g_swig_getvalue_provider = swig_getvalue_provider;
> - g_swig_call_command = swig_call_command;
> - g_swig_call_command_object = swig_call_command_object;
> - g_swig_call_module_init = swig_call_module_init;
> - g_swig_create_os_plugin = swig_create_os_plugin;
> - g_swig_create_frame_recognizer = swig_create_frame_recognizer;
> - g_swig_get_recognized_arguments = swig_get_recognized_arguments;
> - g_swig_run_script_keyword_process = swig_run_script_keyword_process;
> - g_swig_run_script_keyword_thread = swig_run_script_keyword_thread;
> - g_swig_run_script_keyword_target = swig_run_script_keyword_target;
> - g_swig_run_script_keyword_frame = swig_run_script_keyword_frame;
> - g_swig_run_script_keyword_value = swig_run_script_keyword_value;
> - g_swig_plugin_get = swig_plugin_get;
> - g_swig_thread_plan_script = swig_thread_plan_script;
> - g_swig_call_thread_plan = swig_call_thread_plan;
> - g_swig_bkpt_resolver_script = swig_bkpt_resolver_script;
> - g_swig_call_bkpt_resolver = swig_call_bkpt_resolver;
> -}
> -
> void ScriptInterpreterPython::InitializePrivate() {
> if (g_initialized)
> return;
> @@ -3502,8 +3300,7 @@ void ScriptInterpreterPython::Initialize
> // initialization.
> InitializePythonRAII initialize_guard;
>
> - if (g_swig_init_callback)
> - g_swig_init_callback();
> + LLDBSwigPyInit();
>
> // Update the path python uses to search for modules to include the current
> // directory.
>
> Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h?rev=357034&r1=357033&r2=357034&view=diff
> ==============================================================================
> --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (original)
> +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h Tue Mar 26 14:57:02 2019
> @@ -304,7 +304,6 @@ public:
> //------------------------------------------------------------------
> // Static Functions
> //------------------------------------------------------------------
> - static void InitializeSWIG();
> static void Initialize();
>
> static void Terminate();
> @@ -365,156 +364,9 @@ public:
> PyGILState_STATE m_GILState;
> };
>
> - // FIXME: This is currently used from the InitializePythonRAII. Make this
> - // private when we're able to break the dependency.
> -#if PY_MAJOR_VERSION >= 3
> - typedef PyObject *(*SWIGInitCallback)(void);
> -#else
> - typedef void (*SWIGInitCallback)(void);
> -#endif
> - static SWIGInitCallback g_swig_init_callback;
> -
> protected:
> - typedef bool (*SWIGBreakpointCallbackFunction)(
> - const char *python_function_name, const char *session_dictionary_name,
> - const lldb::StackFrameSP &frame_sp,
> - const lldb::BreakpointLocationSP &bp_loc_sp);
> -
> - typedef bool (*SWIGWatchpointCallbackFunction)(
> - const char *python_function_name, const char *session_dictionary_name,
> - const lldb::StackFrameSP &frame_sp, const lldb::WatchpointSP &wp_sp);
> -
> - typedef bool (*SWIGPythonTypeScriptCallbackFunction)(
> - const char *python_function_name, void *session_dictionary,
> - const lldb::ValueObjectSP &valobj_sp, void **pyfunct_wrapper,
> - const lldb::TypeSummaryOptionsSP &options, std::string &retval);
> -
> - typedef void *(*SWIGPythonCreateSyntheticProvider)(
> - const char *python_class_name, const char *session_dictionary_name,
> - const lldb::ValueObjectSP &valobj_sp);
> -
> - typedef void *(*SWIGPythonCreateCommandObject)(
> - const char *python_class_name, const char *session_dictionary_name,
> - const lldb::DebuggerSP debugger_sp);
> -
> - typedef void *(*SWIGPythonCreateScriptedThreadPlan)(
> - const char *python_class_name, const char *session_dictionary_name,
> - const lldb::ThreadPlanSP &thread_plan_sp);
> -
> - typedef bool (*SWIGPythonCallThreadPlan)(void *implementor,
> - const char *method_name,
> - Event *event_sp, bool &got_error);
> -
> - typedef void *(*SWIGPythonCreateScriptedBreakpointResolver)(
> - const char *python_class_name, const char *session_dictionary_name,
> - lldb_private::StructuredDataImpl *args_impl, lldb::BreakpointSP &bkpt_sp);
> -
> - typedef unsigned int (*SWIGPythonCallBreakpointResolver)(
> - void *implementor, const char *method_name,
> - lldb_private::SymbolContext *sym_ctx);
> -
> - typedef void *(*SWIGPythonCreateOSPlugin)(const char *python_class_name,
> - const char *session_dictionary_name,
> - const lldb::ProcessSP &process_sp);
> -
> - typedef void *(*SWIGPythonCreateFrameRecognizer)(
> - const char *python_class_name, const char *session_dictionary_name);
> -
> - typedef void *(*SWIGPythonGetRecognizedArguments)(
> - void *implementor, const lldb::StackFrameSP &frame_sp);
> -
> - typedef size_t (*SWIGPythonCalculateNumChildren)(void *implementor,
> - uint32_t max);
> -
> - typedef void *(*SWIGPythonGetChildAtIndex)(void *implementor, uint32_t idx);
> -
> - typedef int (*SWIGPythonGetIndexOfChildWithName)(void *implementor,
> - const char *child_name);
> -
> - typedef void *(*SWIGPythonCastPyObjectToSBValue)(void *data);
> -
> - typedef lldb::ValueObjectSP (*SWIGPythonGetValueObjectSPFromSBValue)(
> - void *data);
> -
> - typedef bool (*SWIGPythonUpdateSynthProviderInstance)(void *data);
> -
> - typedef bool (*SWIGPythonMightHaveChildrenSynthProviderInstance)(void *data);
> -
> - typedef void *(*SWIGPythonGetValueSynthProviderInstance)(void *implementor);
> -
> - typedef bool (*SWIGPythonCallCommand)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::DebuggerSP &debugger, const char *args,
> - lldb_private::CommandReturnObject &cmd_retobj,
> - lldb::ExecutionContextRefSP exe_ctx_ref_sp);
> -
> - typedef bool (*SWIGPythonCallCommandObject)(
> - void *implementor, lldb::DebuggerSP &debugger, const char *args,
> - lldb_private::CommandReturnObject &cmd_retobj,
> - lldb::ExecutionContextRefSP exe_ctx_ref_sp);
> -
> - typedef bool (*SWIGPythonCallModuleInit)(const char *python_module_name,
> - const char *session_dictionary_name,
> - lldb::DebuggerSP &debugger);
> -
> - typedef bool (*SWIGPythonScriptKeyword_Process)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::ProcessSP &process, std::string &output);
> -
> - typedef bool (*SWIGPythonScriptKeyword_Thread)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::ThreadSP &thread, std::string &output);
> -
> - typedef bool (*SWIGPythonScriptKeyword_Target)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::TargetSP &target, std::string &output);
> -
> - typedef bool (*SWIGPythonScriptKeyword_Frame)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::StackFrameSP &frame, std::string &output);
> -
> - typedef bool (*SWIGPythonScriptKeyword_Value)(
> - const char *python_function_name, const char *session_dictionary_name,
> - lldb::ValueObjectSP &value, std::string &output);
> -
> - typedef void *(*SWIGPython_GetDynamicSetting)(
> - void *module, const char *setting, const lldb::TargetSP &target_sp);
> -
> static void InitializePrivate();
>
> - static void InitializeInterpreter(
> - SWIGInitCallback python_swig_init_callback,
> - SWIGBreakpointCallbackFunction swig_breakpoint_callback,
> - SWIGWatchpointCallbackFunction swig_watchpoint_callback,
> - SWIGPythonTypeScriptCallbackFunction swig_typescript_callback,
> - SWIGPythonCreateSyntheticProvider swig_synthetic_script,
> - SWIGPythonCreateCommandObject swig_create_cmd,
> - SWIGPythonCalculateNumChildren swig_calc_children,
> - SWIGPythonGetChildAtIndex swig_get_child_index,
> - SWIGPythonGetIndexOfChildWithName swig_get_index_child,
> - SWIGPythonCastPyObjectToSBValue swig_cast_to_sbvalue,
> - SWIGPythonGetValueObjectSPFromSBValue swig_get_valobj_sp_from_sbvalue,
> - SWIGPythonUpdateSynthProviderInstance swig_update_provider,
> - SWIGPythonMightHaveChildrenSynthProviderInstance
> - swig_mighthavechildren_provider,
> - SWIGPythonGetValueSynthProviderInstance swig_getvalue_provider,
> - SWIGPythonCallCommand swig_call_command,
> - SWIGPythonCallCommandObject swig_call_command_object,
> - SWIGPythonCallModuleInit swig_call_module_init,
> - SWIGPythonCreateOSPlugin swig_create_os_plugin,
> - SWIGPythonCreateFrameRecognizer swig_create_frame_recognizer,
> - SWIGPythonGetRecognizedArguments swig_get_recognized_arguments,
> - SWIGPythonScriptKeyword_Process swig_run_script_keyword_process,
> - SWIGPythonScriptKeyword_Thread swig_run_script_keyword_thread,
> - SWIGPythonScriptKeyword_Target swig_run_script_keyword_target,
> - SWIGPythonScriptKeyword_Frame swig_run_script_keyword_frame,
> - SWIGPythonScriptKeyword_Value swig_run_script_keyword_value,
> - SWIGPython_GetDynamicSetting swig_plugin_get,
> - SWIGPythonCreateScriptedThreadPlan swig_thread_plan_script,
> - SWIGPythonCallThreadPlan swig_call_thread_plan,
> - SWIGPythonCreateScriptedBreakpointResolver swig_bkpt_resolver_script,
> - SWIGPythonCallBreakpointResolver swig_call_breakpoint_resolver);
> -
> class SynchronicityHandler {
> private:
> lldb::DebuggerSP m_debugger_sp;
> @@ -587,38 +439,6 @@ protected:
> bool m_valid_session;
> uint32_t m_lock_count;
> PyThreadState *m_command_thread_state;
> -
> - static SWIGBreakpointCallbackFunction g_swig_breakpoint_callback;
> - static SWIGWatchpointCallbackFunction g_swig_watchpoint_callback;
> - static SWIGPythonTypeScriptCallbackFunction g_swig_typescript_callback;
> - static SWIGPythonCreateSyntheticProvider g_swig_synthetic_script;
> - static SWIGPythonCreateCommandObject g_swig_create_cmd;
> - static SWIGPythonCalculateNumChildren g_swig_calc_children;
> - static SWIGPythonGetChildAtIndex g_swig_get_child_index;
> - static SWIGPythonGetIndexOfChildWithName g_swig_get_index_child;
> - static SWIGPythonCastPyObjectToSBValue g_swig_cast_to_sbvalue;
> - static SWIGPythonGetValueObjectSPFromSBValue
> - g_swig_get_valobj_sp_from_sbvalue;
> - static SWIGPythonUpdateSynthProviderInstance g_swig_update_provider;
> - static SWIGPythonMightHaveChildrenSynthProviderInstance
> - g_swig_mighthavechildren_provider;
> - static SWIGPythonGetValueSynthProviderInstance g_swig_getvalue_provider;
> - static SWIGPythonCallCommand g_swig_call_command;
> - static SWIGPythonCallCommandObject g_swig_call_command_object;
> - static SWIGPythonCallModuleInit g_swig_call_module_init;
> - static SWIGPythonCreateOSPlugin g_swig_create_os_plugin;
> - static SWIGPythonCreateFrameRecognizer g_swig_create_frame_recognizer;
> - static SWIGPythonGetRecognizedArguments g_swig_get_recognized_arguments;
> - static SWIGPythonScriptKeyword_Process g_swig_run_script_keyword_process;
> - static SWIGPythonScriptKeyword_Thread g_swig_run_script_keyword_thread;
> - static SWIGPythonScriptKeyword_Target g_swig_run_script_keyword_target;
> - static SWIGPythonScriptKeyword_Frame g_swig_run_script_keyword_frame;
> - static SWIGPythonScriptKeyword_Value g_swig_run_script_keyword_value;
> - static SWIGPython_GetDynamicSetting g_swig_plugin_get;
> - static SWIGPythonCreateScriptedThreadPlan g_swig_thread_plan_script;
> - static SWIGPythonCallThreadPlan g_swig_call_thread_plan;
> - static SWIGPythonCreateScriptedBreakpointResolver g_swig_bkpt_resolver_script;
> - static SWIGPythonCallBreakpointResolver g_swig_call_bkpt_resolver;
> };
>
> } // namespace lldb_private
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
More information about the lldb-commits
mailing list