diff options
| -rw-r--r-- | lldb/source/Commands/CommandObjectCommands.cpp | 4 | ||||
| -rw-r--r-- | lldb/source/Core/Module.cpp | 2 | ||||
| -rw-r--r-- | lldb/source/Interpreter/ScriptInterpreterPython.cpp | 5 | ||||
| -rw-r--r-- | lldb/test/functionalities/command_script/import/TestImport.py | 8 | 
4 files changed, 10 insertions, 9 deletions
diff --git a/lldb/source/Commands/CommandObjectCommands.cpp b/lldb/source/Commands/CommandObjectCommands.cpp index 278fdc0c876..5964eacce55 100644 --- a/lldb/source/Commands/CommandObjectCommands.cpp +++ b/lldb/source/Commands/CommandObjectCommands.cpp @@ -1355,7 +1355,7 @@ protected:          void          OptionParsingStarting ()          { -            m_allow_reload = false; +            m_allow_reload = true;          }          const OptionDefinition* @@ -1426,7 +1426,7 @@ protected:  OptionDefinition  CommandObjectCommandsScriptImport::CommandOptions::g_option_table[] =  { -    { LLDB_OPT_SET_1, false, "allow-reload", 'r', no_argument, NULL, 0, eArgTypeNone,        "Allow the script to be loaded even if it was already loaded before (for Python, the __lldb_init_module function will be called again, but the module will not be reloaded from disk)."}, +    { LLDB_OPT_SET_1, false, "allow-reload", 'r', no_argument, NULL, 0, eArgTypeNone,        "Allow the script to be loaded even if it was already loaded before. This argument exists for backwards compatibility, but reloading is always allowed, whether you specify it or not."},      { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL }  }; diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 0967ef7100d..d8420ab8af1 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1287,7 +1287,7 @@ Module::LoadScriptingResourceInTarget (Target *target, Error& error, Stream* fee                          }                          StreamString scripting_stream;                          scripting_fspec.Dump(&scripting_stream); -                        const bool can_reload = false; +                        const bool can_reload = true;                          const bool init_lldb_globals = false;                          bool did_load = script_interpreter->LoadScriptingModule(scripting_stream.GetData(), can_reload, init_lldb_globals, error);                          if (!did_load) diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index b54ef1ca901..da80e0ce0e8 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -2672,7 +2672,10 @@ ScriptInterpreterPython::LoadScriptingModule (const char* pathname,          // now actually do the import          command_stream.Clear(); -        command_stream.Printf("import %s",basename.c_str()); +        if (was_imported) +            command_stream.Printf("reload(%s)",basename.c_str()); +        else +            command_stream.Printf("import %s",basename.c_str());          bool import_retval = ExecuteMultipleLines(command_stream.GetData(), ScriptInterpreter::ExecuteScriptOptions().SetEnableIO(false).SetSetLLDBGlobals(false).SetMaskoutErrors(false));          PyObject* py_error = PyErr_Occurred(); // per Python docs: "you do not need to Py_DECREF()" the return of this function diff --git a/lldb/test/functionalities/command_script/import/TestImport.py b/lldb/test/functionalities/command_script/import/TestImport.py index 2356fcee850..2f0121bd73d 100644 --- a/lldb/test/functionalities/command_script/import/TestImport.py +++ b/lldb/test/functionalities/command_script/import/TestImport.py @@ -45,17 +45,15 @@ class ImportTestCase(TestBase):                  error=True, startstr='error: module importing failed')          self.expect("command script import ./nosuchfolder/",                  error=True, startstr='error: module importing failed') -        self.expect("command script import ./foo/foo.py", -                error=True, startstr='error: module importing failed') +        self.expect("command script import ./foo/foo.py", error=False)          self.runCmd("command script import --allow-reload ./thepackage")          self.expect("TPcommandA",substrs=["hello world A"])          self.expect("TPcommandB",substrs=["hello world B"])          self.runCmd("script import dummymodule") -        self.expect("command script import ./dummymodule.py", -                error=True, startstr='error: module importing failed') -        self.runCmd("command script import --allow-reload ./dummymodule.py") +        self.expect("command script import ./dummymodule.py", error=False) +        self.expect("command script import --allow-reload ./dummymodule.py", error=False)          self.runCmd("command script add -f foo.foo_function foocmd")          self.runCmd("command script add -f foobar.foo_function foobarcmd")  | 

