[Lldb-commits] [lldb] r266033 - Restore the lazy initialization of ScriptInterpreterPython, which was lost as part of the SystemLifetimeManager work

Enrico Granata via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 12 11:12:09 PDT 2016


Is there any failure logs I can look at?
I am gonna guess the issue is simply that the unit test is assuming Python to be initialized. Which is a bad assumption after my change. 

Sent from my iPhone

> On Apr 12, 2016, at 2:16 AM, Pavel Labath <labath at google.com> wrote:
> 
> This breaks the python unit tests. Doesn't seem hard to fix, it seems we just need some way to "really" initialize python before we run the tests. However, I have reverted this change until that happens to keep to bots green.
> 
> pl
> 
>> On 12 April 2016 at 02:41, Enrico Granata via lldb-commits <lldb-commits at lists.llvm.org> wrote:
>> 
>>> On Apr 11, 2016, at 6:28 PM, Zachary Turner <zturner at google.com> wrote:
>>> 
>>> I have a feeling this breaks something, but I'm not sure what. I remember specifically needing this for some reason.
>> 
>> If you manage to repro the breakage, let’s work on getting it fixed
>> I’d like to not have to initialize Python eagerly - most users will probably not touch anything Python during debugging, and I have seen a few spin dumps connected to the eager initialization during debugging startup
>> 
>>> Did you verify that the gtest suite
>> 
>> No - but I believe the bots run it, so I will probably get yelled at soon if I broke something
>> 
>>> as well as the dotest suite
>> 
>> Yes
>> 
>>> and the interactive interpreter all still pass / work?
>> 
>> Yes
>> 
>>>> On Mon, Apr 11, 2016 at 6:14 PM Enrico Granata via lldb-commits <lldb-commits at lists.llvm.org> wrote:
>>>> Author: enrico
>>>> Date: Mon Apr 11 20:08:35 2016
>>>> New Revision: 266033
>>>> 
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=266033&view=rev
>>>> Log:
>>>> Restore the lazy initialization of ScriptInterpreterPython, which was lost as part of the SystemLifetimeManager work
>>>> 
>>>> 
>>>> Modified:
>>>>     lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
>>>>     lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
>>>> 
>>>> 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=266033&r1=266032&r2=266033&view=diff
>>>> ==============================================================================
>>>> --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (original)
>>>> +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Mon Apr 11 20:08:35 2016
>>>> @@ -274,8 +274,8 @@ ScriptInterpreterPython::ScriptInterpret
>>>>      m_lock_count(0),
>>>>      m_command_thread_state(nullptr)
>>>>  {
>>>> -    assert(g_initialized && "ScriptInterpreterPython created but InitializePrivate has not been called!");
>>>> -
>>>> +    InitializePrivate();
>>>> +
>>>>      m_dictionary_name.append("_dict");
>>>>      StreamString run_string;
>>>>      run_string.Printf ("%s = dict()", m_dictionary_name.c_str());
>>>> @@ -330,8 +330,6 @@ ScriptInterpreterPython::Initialize()
>>>> 
>>>>      std::call_once(g_once_flag, []()
>>>>      {
>>>> -        InitializePrivate();
>>>> -
>>>>          PluginManager::RegisterPlugin(GetPluginNameStatic(),
>>>>                                        GetPluginDescriptionStatic(),
>>>>                                        lldb::eScriptLanguagePython,
>>>> @@ -3097,7 +3095,9 @@ ScriptInterpreterPython::InitializeInter
>>>>  void
>>>>  ScriptInterpreterPython::InitializePrivate ()
>>>>  {
>>>> -    assert(!g_initialized && "ScriptInterpreterPython::InitializePrivate() called more than once!");
>>>> +    if (g_initialized)
>>>> +        return;
>>>> +
>>>>      g_initialized = true;
>>>> 
>>>>      Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
>>>> 
>>>> 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=266033&r1=266032&r2=266033&view=diff
>>>> ==============================================================================
>>>> --- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (original)
>>>> +++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h Mon Apr 11 20:08:35 2016
>>>> @@ -372,9 +372,6 @@ public:
>>>>      void ResetOutputFileHandle(FILE *new_fh) override;
>>>> 
>>>>      static void
>>>> -    InitializePrivate ();
>>>> -
>>>> -    static void
>>>>      InitializeInterpreter (SWIGInitCallback python_swig_init_callback,
>>>>                             SWIGBreakpointCallbackFunction swig_breakpoint_callback,
>>>>                             SWIGWatchpointCallbackFunction swig_watchpoint_callback,
>>>> @@ -507,6 +504,9 @@ public:
>>>>      };
>>>> 
>>>>  protected:
>>>> +    static void
>>>> +    InitializePrivate ();
>>>> +
>>>>      class SynchronicityHandler
>>>>      {
>>>>      private:
>>>> 
>>>> 
>>>> _______________________________________________
>>>> lldb-commits mailing list
>>>> lldb-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
>> 
>> 
>> Thanks,
>> - Enrico
>> 📩 egranata@.com ☎️ 27683
>> 
>> 
>> _______________________________________________
>> lldb-commits mailing list
>> lldb-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160412/92a45d4b/attachment.html>


More information about the lldb-commits mailing list