@@ -1118,4 +1118,54 @@ static void LLDBSwigPythonCallPythonSBDebuggerTerminateCallback(lldb::user_id_t
11181118 SWIG_PYTHON_THREAD_END_BLOCK;
11191119 }
11201120}
1121+
1122+ static SBError LLDBSwigPythonCallLocateModuleCallback (
1123+ void *callback_baton, const SBModuleSpec &module_spec_sb,
1124+ SBFileSpec &module_file_spec_sb, SBFileSpec &symbol_file_spec_sb) {
1125+ SWIG_Python_Thread_Block swig_thread_block;
1126+
1127+ PyErr_Cleaner py_err_cleaner (true );
1128+ PythonObject module_spec_arg = SWIGBridge::ToSWIGWrapper (
1129+ std::move (std::make_unique<SBModuleSpec>(module_spec_sb)));
1130+ PythonObject module_file_spec_arg = SWIGBridge::ToSWIGWrapper (
1131+ std::move (std::make_unique<SBFileSpec>(module_file_spec_sb)));
1132+ PythonObject symbol_file_spec_arg = SWIGBridge::ToSWIGWrapper (
1133+ std::move (std::make_unique<SBFileSpec>(symbol_file_spec_sb)));
1134+
1135+ PythonCallable callable =
1136+ Retain<PythonCallable>(reinterpret_cast <PyObject *>(callback_baton));
1137+ if (!callable.IsValid ()) {
1138+ return SBError (" The callback callable is not valid." );
1139+ }
1140+
1141+ PythonObject result = callable (module_spec_arg, module_file_spec_arg,
1142+ symbol_file_spec_arg);
1143+
1144+ if (!result.IsAllocated ())
1145+ return SBError (" No result." );
1146+ lldb::SBError *sb_error_ptr = nullptr ;
1147+ if (SWIG_ConvertPtr (result.get (), (void **)&sb_error_ptr,
1148+ SWIGTYPE_p_lldb__SBError, 0 ) == -1 ) {
1149+ return SBError (" Result is not SBError." );
1150+ }
1151+
1152+ if (sb_error_ptr->Success ()) {
1153+ lldb::SBFileSpec *sb_module_file_spec_ptr = nullptr ;
1154+ if (SWIG_ConvertPtr (module_file_spec_arg.get (),
1155+ (void **)&sb_module_file_spec_ptr,
1156+ SWIGTYPE_p_lldb__SBFileSpec, 0 ) == -1 )
1157+ return SBError (" module_file_spec is not SBFileSpec." );
1158+
1159+ lldb::SBFileSpec *sb_symbol_file_spec_ptr = nullptr ;
1160+ if (SWIG_ConvertPtr (symbol_file_spec_arg.get (),
1161+ (void **)&sb_symbol_file_spec_ptr,
1162+ SWIGTYPE_p_lldb__SBFileSpec, 0 ) == -1 )
1163+ return SBError (" symbol_file_spec is not SBFileSpec." );
1164+
1165+ module_file_spec_sb = *sb_module_file_spec_ptr;
1166+ symbol_file_spec_sb = *sb_symbol_file_spec_ptr;
1167+ }
1168+
1169+ return *sb_error_ptr;
1170+ }
11211171%}
0 commit comments