// now make sure that Python has "directory" in the search path
StreamString command_stream;
- command_stream.Printf("if not (sys.path.__contains__('%s')):\n sys.path.append('%s');\n\n",
+ command_stream.Printf("if not (sys.path.__contains__('%s')):\n sys.path.insert(1,'%s');\n\n",
directory,
directory);
bool syspath_retval = ExecuteMultipleLines(command_stream.GetData(), ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false));
const ArchSpec *arch = module_spec.GetArchitecturePtr();
const UUID *uuid = module_spec.GetUUIDPtr();
+ const char* module_directory = exec_fspec->GetDirectory().GetCString();
+ const char* module_basename = exec_fspec->GetFileNameStrippingExtension().GetCString();
+
Timer scoped_timer (__PRETTY_FUNCTION__,
"LocateExecutableScriptingResource (file = %s, arch = %s, uuid = %p)",
exec_fspec ? exec_fspec->GetFilename().AsCString ("<NULL>") : "<NULL>",
FileSpec script_fspec;
+ StreamString path_string;
+
if (symbol_fspec && symbol_fspec.Exists())
{
// for OSX we are going to be in .dSYM/Contents/Resources/DWARF/<basename>
// let us go to .dSYM/Contents/Resources/Python/<basename>.py and see if the file exists
- StreamString path_string;
- path_string.Printf("%s/../Python/%s.py",symbol_fspec.GetDirectory().GetCString(),module_spec.GetFileSpec().GetFileNameStrippingExtension().GetCString());
+ path_string.Printf("%s/../Python/%s.py",symbol_fspec.GetDirectory().GetCString(),module_basename);
script_fspec.SetFile(path_string.GetData(), true);
if (!script_fspec.Exists())
script_fspec.Clear();
}
+ // no symbols or symbols did not have a scripting resource
+ if (!symbol_fspec || !script_fspec)
+ {
+ path_string.Clear();
+ path_string.Printf("%s.framework",module_basename);
+ if (strstr(module_directory, path_string.GetData()))
+ {
+ // we are going to be in foo.framework/Versions/X/foo
+ path_string.Clear();
+ // let's go to foo.framework/Versions/X/Resources/Python/foo.py
+ path_string.Printf("%s/Resources/Python/%s.py",module_directory,module_basename);
+ script_fspec.SetFile(path_string.GetData(), true);
+ if (!script_fspec.Exists())
+ script_fspec.Clear();
+ }
+ }
+
return script_fspec;
}