[lldb-dev] [PATCH] Everyone: please download, build and test the new iohandler branch

Steve Pucci spucci at google.com
Thu Jan 9 15:28:12 PST 2014


Right, sorry about that.  Here's the corrected patch:

Index: IOHandler.cpp
===================================================================
--- IOHandler.cpp (revision 198879)
+++ IOHandler.cpp (working copy)
@@ -2252,6 +2252,23 @@
     {
     }

+    TreeItem &
+    operator=(const TreeItem &rhs)
+    {
+        if (this != &rhs)
+        {
+            m_parent = rhs.m_parent;
+            m_delegate = rhs.m_delegate;
+            m_user_data = rhs.m_user_data;
+            m_row_idx = rhs.m_row_idx;
+            m_children = rhs.m_children;
+            m_might_have_children = rhs.m_might_have_children;
+            m_is_expanded = rhs.m_is_expanded;
+            m_did_calculate_children = rhs.m_did_calculate_children;
+        }
+        return *this;
+    }
+
     size_t
     GetDepth () const
     {




On Thu, Jan 9, 2014 at 3:15 PM, Todd Fiala <tfiala at google.com> wrote:

> Steve's going to fix a couple typos in that patch.  We're missing a few
> rhs. on the right hand side of the assignment operations.
>
>
> On Thu, Jan 9, 2014 at 1:52 PM, Steve Pucci <spucci at google.com> wrote:
>
>> Hi all,
>>
>> I have a new compilation problem (patch attached) with Ubuntu 12.04 using
>> gcc 4.8.2.  It looks like gcc is not properly autogenerating a constructor,
>> so the workaround is to provide one manually.
>>
>>  - Steve
>>
>> Index: source/Core/IOHandler.cpp
>> ===================================================================
>> --- source/Core/IOHandler.cpp (revision 198879)
>> +++ source/Core/IOHandler.cpp (working copy)
>> @@ -2252,6 +2252,23 @@
>>      {
>>      }
>>
>> +    TreeItem &
>> +    operator=(const TreeItem &rhs)
>> +    {
>> +        if (this != &rhs)
>> +        {
>> +            m_parent = rhs.m_parent;
>> +            m_delegate = rhs.m_delegate;
>> +            m_user_data = rhs.m_user_data;
>> +            m_row_idx = rhs.m_row_idx;
>> +            m_children = rhs.m_children;
>> +            m_might_have_children = m_might_have_children;
>> +            m_is_expanded = m_is_expanded;
>> +            m_did_calculate_children = m_did_calculate_children;
>> +        }
>> +        return *this;
>> +    }
>> +
>>      size_t
>>      GetDepth () const
>>      {
>>
>>
>> On Thu, Jan 9, 2014 at 1:10 PM, Steve Pucci <spucci at google.com> wrote:
>>
>>> Hi all,
>>>
>>> Running the iohandler branch on Ubuntu 12.04 using gcc 4.8.2, using
>>> configure rather than CMake, ran into a similar issue as Abid (needed to
>>> add -lcurses, and also add back in -ledit; patch attached).  I'm getting
>>> these test failures:
>>>
>>> Ran 272 tests.
>>> Failing Tests (4)
>>> FAIL: LLDB (suite) :: TestCommandRegex.py (Linux
>>> spucci-linux.mtv.corp.google.com 3.2.5-gg1336 #1 SMP Thu Aug 29
>>> 02:37:18 PDT 2013 x86_64 x86_64)
>>> FAIL: LLDB (suite) :: TestDataFormatterCategories.py (Linux
>>> spucci-linux.mtv.corp.google.com 3.2.5-gg1336 #1 SMP Thu Aug 29
>>> 02:37:18 PDT 2013 x86_64 x86_64)
>>> FAIL: LLDB (suite) :: TestDataFormatterGlobals.py (Linux
>>> spucci-linux.mtv.corp.google.com 3.2.5-gg1336 #1 SMP Thu Aug 29
>>> 02:37:18 PDT 2013 x86_64 x86_64)
>>>  FAIL: LLDB (suite) :: TestConvenienceVariables.py (Linux
>>> spucci-linux.mtv.corp.google.com 3.2.5-gg1336 #1 SMP Thu Aug 29
>>> 02:37:18 PDT 2013 x86_64 x86_64)
>>>
>>> We will be looking at these shortly, but we're also tracking a
>>> compilation error that's blocking this now on this branch (more about that
>>> shortly).
>>>
>>>  - Steve
>>>
>>> Patch:
>>>
>>> Index: lib/Makefile
>>> ===================================================================
>>> --- lib/Makefile (revision 198878)
>>> +++ lib/Makefile (working copy)
>>> @@ -148,7 +148,7 @@
>>>      # Don't allow unresolved symbols.
>>>      LLVMLibsOptions += -Wl,--no-undefined
>>>      # Link in python
>>> -    LLVMLibsOptions += $(PYTHON_BUILD_FLAGS) -lrt
>>> +    LLVMLibsOptions += $(PYTHON_BUILD_FLAGS) -lrt -ledit -lncurses
>>>      LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT)
>>>  endif
>>>
>>>
>>>
>>>
>>> On Wed, Jan 8, 2014 at 9:09 AM, Abid, Hafiz <Hafiz_Abid at mentor.com>wrote:
>>>
>>>> > Great, please check in any changes you need in order to build!
>>>> Committed in revision 198773.
>>>>
>>>> >
>>>> > On Jan 7, 2014, at 8:21 AM, Abid, Hafiz <Hafiz_Abid at mentor.com>
>>>> wrote:
>>>> >
>>>> > > Hi Greg,
>>>> > >
>>>> > >> -----Original Message-----
>>>> > >> From: lldb-dev-bounces at cs.uiuc.edu
>>>> > >> [mailto:lldb-dev-bounces at cs.uiuc.edu]
>>>> > >> On Behalf Of Greg Clayton
>>>> > >> Sent: 02 January 2014 22:57
>>>> > >> To: lldb-dev at cs.uiuc.edu
>>>> > >> Subject: [lldb-dev] Everyone: please download, build and test the
>>>> new
>>>> > >> iohandler branch
>>>> > >>
>>>> > >> svn co
>>>> > >> https://$USER@llvm.org/svn/llvm-project/lldb/branches/iohandler
>>>> > >>
>>>> > >> The first step is to get it building for your platform as I am sure
>>>> > >> the Makefiles are out of date.
>>>> > >>
>>>> > >> This branch will soon be merged back into top of tree, but I wanted
>>>> > >> to give all the major platforms time to submit patches against this
>>>> > >> to get things working on all systems before any buildbots get
>>>> broken.
>>>> > >>
>>>> > >> The major benefits include:
>>>> > >> - editline is not built into the lldb shared library so all
>>>> IOHandler
>>>> > >> objects can use the editline functionality.
>>>> > >> - autocomplete now working in the embedded python interpreter
>>>> > >> - history now working in the embedded python interpreter
>>>> > >> - autocomplete now working for multi-line command entering (like in
>>>> > >> "breakpoint command add")
>>>> > >> - when editing multiple lines you can use the UP and DOWN arrow
>>>> keys
>>>> > >> to edit previous lines. This makes multi-line expressions and
>>>> > >> commands much easier to write and edit. Use ^B and ^N for next/prev
>>>> > >> history when in multi- line mode.
>>>> > >> - curses is now supported with the new IOHandler infrastructure. To
>>>> > >> try this out, run and hit a breakpoint, and type "gui" on the
>>>> command
>>>> > >> line to drop into the curses GUI mode! Lots of stuff isn't hooked
>>>> up
>>>> > >> yet, but I am sure the open source community can help fill in some
>>>> > >> new views and improve existing ones.
>>>> > >>
>>>> > >> So please get this building and test this on your system and let us
>>>> > >> know what issues you run into.
>>>> > >
>>>> > > I tried to build this branch using cmake on Ubuntu 12.04 with gcc
>>>> 4.8.
>>>> > > There were some build issues that I fixed as follows.
>>>> > >
>>>> > > Include limits.h in Editline.cpp for PATH_MAX and libncurses in the
>>>> cmake
>>>> > files.
>>>> > > I also noted that libedit version on my system was missing some
>>>> > > defines like EL_PROMPT_ESC. I have to get hold of a recent version
>>>> for
>>>> > libedit.
>>>> > > After that lldb builds fine on my system. Still have to test it
>>>> though.
>>>> > >
>>>> > > I am pasting the changes needed for the build below.
>>>> > >
>>>> > >
>>>> > > Index: source/Host/common/Editline.cpp
>>>> > >
>>>> > ================================================================
>>>> > ===
>>>> > > --- source/Host/common/Editline.cpp (revision 198682)
>>>> > > +++ source/Host/common/Editline.cpp (working copy)
>>>> > > @@ -15,6 +14,8 @@
>>>> > > #include "lldb/Core/StringList.h"
>>>> > > #include "lldb/Host/Host.h"
>>>> > >
>>>> > > +#include <limits.h>
>>>> > > +
>>>> > > using namespace lldb;
>>>> > > using namespace lldb_private;
>>>> > >
>>>> > > Index: source/Symbol/ClangASTType.cpp
>>>> > >
>>>> > ================================================================
>>>> > ===
>>>> > > --- source/Symbol/ClangASTType.cpp  (revision 198682)
>>>> > > +++ source/Symbol/ClangASTType.cpp  (working copy)
>>>> > > @@ -1135,7 +1135,7 @@
>>>> > >         if (typedef_type)
>>>> > >         {
>>>> > >             const TypedefNameDecl *typedef_decl =
>>>> typedef_type->getDecl();
>>>> > > -            type_name = typedef_decl-
>>>> > >getQualifiedNameAsString(printing_policy);
>>>> > > +            type_name = typedef_decl->getQualifiedNameAsString();
>>>> > >         }
>>>> > >         else
>>>> > >         {
>>>> > > Index: CMakeLists.txt
>>>> > >
>>>> > ================================================================
>>>> > ===
>>>> > > --- CMakeLists.txt  (revision 198682)
>>>> > > +++ CMakeLists.txt  (working copy)
>>>> > > @@ -265,6 +265,10 @@
>>>> > >   list(APPEND system_libs execinfo)
>>>> > > endif()
>>>> > >
>>>> > > +if (CMAKE_SYSTEM_NAME MATCHES "Linux")
>>>> > > +  list(APPEND system_libs ncurses)
>>>> > > +endif()
>>>> > > +
>>>> > > #add_subdirectory(include)
>>>> > > add_subdirectory(docs)
>>>> > > if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
>>>> > >
>>>> > > Regards,
>>>> > > Abid
>>>> > >
>>>> > >>
>>>> > >> Greg Clayton
>>>> > >>
>>>> > >> _______________________________________________
>>>> > >> lldb-dev mailing list
>>>> > >> lldb-dev at cs.uiuc.edu
>>>> > >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>
>>>>
>>>> _______________________________________________
>>>> lldb-dev mailing list
>>>> lldb-dev at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>>>
>>>
>>>
>>
>> _______________________________________________
>> lldb-dev mailing list
>> lldb-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>>
>>
>
>
> --
> Todd Fiala | Software Engineer |  tfiala at google.com |  650-943-3180
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140109/fd7ca3ce/attachment.html>
-------------- next part --------------
Index: IOHandler.cpp
===================================================================
--- IOHandler.cpp	(revision 198879)
+++ IOHandler.cpp	(working copy)
@@ -2252,6 +2252,23 @@
     {
     }
     
+    TreeItem &
+    operator=(const TreeItem &rhs)
+    {
+        if (this != &rhs)
+        {
+            m_parent = rhs.m_parent;
+            m_delegate = rhs.m_delegate;
+            m_user_data = rhs.m_user_data;
+            m_row_idx = rhs.m_row_idx;
+            m_children = rhs.m_children;
+            m_might_have_children = rhs.m_might_have_children;
+            m_is_expanded = rhs.m_is_expanded;
+            m_did_calculate_children = rhs.m_did_calculate_children;
+        }
+        return *this;
+    }
+
     size_t
     GetDepth () const
     {


More information about the lldb-dev mailing list