Skip to content
  1. Nov 28, 2012
    • Greg Clayton's avatar
      <rdar://problem/12639603> · e9adcab0
      Greg Clayton authored
      Simplify the logging on ObjectFile::~ObjectFile() to not access an classes above the object file (like the module) so we don't crash when logging object lifetimes. The log message contains the "this" pointer value which can be matched up with the constructor log.
      
      llvm-svn: 168754
      e9adcab0
  2. Nov 27, 2012
    • Greg Clayton's avatar
      <rdar://problem/12106825> · 3d51b9f9
      Greg Clayton authored
      Allow the expression parser to see more than just data symbols. We now accept any symbol that has an address. We take precautions to only accept symbols by their mangled or demangled names only if the demangled name was not synthesized. If the demangled name is synthesized, then we now mark symbols accordingly and only compare against the mangled original name. 
      
      llvm-svn: 168668
      3d51b9f9
  3. Nov 16, 2012
  4. Nov 12, 2012
  5. Nov 06, 2012
    • Greg Clayton's avatar
      <rdar://problem/12582031> · 88bc7f35
      Greg Clayton authored
      Unnamed bitfields cause struct layout problems
      
      Synthesize unnamed bitfields when required. Most compilers don't mention unnamed bitfields in the DWARF, so we need to create them to keep clang happy with the types we create from the DWARF. We currently can't do this for ObjC since the DW_AT_bit_offset value for any direct ivars of ObjC classes as the values for these attributes are bogus. A bug has been filed on Clang to fix this, and another bug has been filed on LLDB to make sure we fix the DWARF parser once the clang fix is in by looking the the DW_AT_producer in the compile unit attributes and finding the compiler version and only enabling it for newer versions of clang.
      
      llvm-svn: 167424
      88bc7f35
  6. Nov 02, 2012
    • Greg Clayton's avatar
      <rdar://problem/12585314> · 2508b9b8
      Greg Clayton authored
      LLDB now provides base class offsets (virtual and non virtual) to Clang's record layout. We previously were told this wasn't necessary, but it is when pragma pack gets involved.
      
      llvm-svn: 167262
      2508b9b8
  7. Oct 27, 2012
  8. Oct 26, 2012
    • Jason Molenda's avatar
      Add a new capability to RegisterContextLLDB: To recognize when the · 60f0bd49
      Jason Molenda authored
      Full UnwindPlan is trying to do an impossible unwind; in that case
      invalidate the Full UnwindPlan and replace it with the architecture
      default unwind plan.
      
      This is a scenario that happens occasionally with arm unwinds in
      particular; the instruction analysis based full unwindplan can
      mis-parse the functions and the stack walk stops prematurely.  Now
      we can do a simpleminded frame-chain walk to find the caller frame
      and continue the unwind.  It's not ideal but given the complicated
      nature of analyzing the arm functions, and the lack of eh_frame
      information on iOS, it is a distinct improvement and fixes some
      long-standing problems with the unwinder on that platform.  
      
      This is fixing <rdar://problem/12091421>.  I may re-use this
      invalidate feature in the future if I can identify other cases where
      the full unwindplan's unwind information is clearly incorrect.
      
      This checkin also includes some cleanup for the volatile register
      definition in the arm ABI plugin for <rdar://problem/10652166> 
      although work remains to be done for that bug.
      
      llvm-svn: 166757
      60f0bd49
  9. Oct 25, 2012
  10. Oct 24, 2012
  11. Oct 22, 2012
    • Greg Clayton's avatar
      <rdar://problem/12473003> · 7bc31332
      Greg Clayton authored
      Allow type searches to specify a type keyword when searching for type. Currently supported type keywords are: struct, class, union, enum, and typedef.
      
      So now you can search for types with a string like "struct foo".
      
      llvm-svn: 166420
      7bc31332
  12. Oct 18, 2012
  13. Oct 15, 2012
  14. Oct 13, 2012
  15. Oct 12, 2012
  16. Oct 05, 2012
  17. Oct 03, 2012
  18. Sep 25, 2012
    • Sean Callanan's avatar
      Brought LLDB top-of-tree into sync with LLVM/Clang · 3d654b30
      Sean Callanan authored
      top-of-tree.  Removed all local patches and llvm.zip.
      
      The intent is that fron now on top-of-tree will
      always build against LLVM/Clang top-of-tree, and
      that problems building will be resolved as they
      occur.  Stable release branches of LLDB can be
      constructed as needed and linked to specific release
      branches of LLVM/Clang.
      
      llvm-svn: 164563
      3d654b30
  19. Sep 21, 2012
    • Sean Callanan's avatar
      Fixed a problem where persistent variables did · 2cb5e527
      Sean Callanan authored
      not correctly store the contents of Objective-C
      classes.  This was due to a combination of
      factors:
      
        1) Types were only being completed if we were
           looking inside them for specific ivars
           (using FindExternalVisibleDeclsByName). 
           We now look the complete type up at every
           FindExternalLexicalDecls.
      
        2) Even if the types were completed properly,
           ValueObjectConstResult overrode the type
           of every ValueObject using the complete type
           for its class from the debug information.
           Superclasses of complete classes are not
           guaranteed to be complete.  Although "frame
           variable" uses the debug information,
           the expression parser does now piece together
           complete types at every level (as described
           in Bullet 1), so I provided a way for the
           expression parser to prevent overriding.
      
        3) Type sizes were being miscomputed by
           ClangASTContext.  It ignored the ISA pointer
           and only counted fields.  We now correctly
           count the ISA in the size of an object.
      
      <rdar://problem/12315386>
      
      llvm-svn: 164333
      2cb5e527
  20. Sep 18, 2012
  21. Sep 11, 2012
  22. Sep 08, 2012
  23. Sep 01, 2012
  24. Aug 31, 2012
    • Greg Clayton's avatar
      <rdar://problem/12202862> · 7036425c
      Greg Clayton authored
      Added a fix for incorrect dynamic typing. Before when asking if a C++ class could be dynamic, we would answer yes for incomplete C++ classes. This turned out to have issues where if a class was not virtual, yet had its first ivar be an instance of a virtual class, we would incorrectly say that a class was virtual and we would downcast it to be a pointer to the first ivar. We now ask the class to complete itself prior to answering the question. We need to test the effects on memory of this change prior to submission. It is the safest and best fix, but it does have a potential downside of higher memory consumption.
      
      llvm-svn: 163014
      7036425c
  25. Aug 29, 2012
    • Greg Clayton's avatar
      <rdar://problem/11757916> · 1f746071
      Greg Clayton authored
      Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes:
      - Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". 
      - modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly
      - Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was.
      - modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile()
      
      Cleaned up header includes a bit as well.
      
      llvm-svn: 162860
      1f746071
  26. Aug 18, 2012
  27. Aug 10, 2012
  28. Aug 09, 2012
  29. Aug 01, 2012
    • Greg Clayton's avatar
      <rdar://problem/11275622> · 1811b4fa
      Greg Clayton authored
      Added new API to lldb::SBTypeMember for bitfields:
      
          bool SBTypeMember::IsBitfield();
          uint32_t SBTypeMember::GetBitfieldSizeInBits();
      
      Also added new properties for easy access. Now SBTypeMember objects in python have a "fields" property for all type fields, "bases" for all direct bases, "vbases" for all virtual base classes and "members" for a combo of all three organized by bit offset. They all return a python list() of SBTypeMember objects. Usage:
      (lldb) script
      >>> t = lldb.target.FindFirstType("my_type")
      >>> for field in t.fields:
      ...     print field
      >>> for vbase in t.vbases:
      ...     print vbase
      >>> for base in t.bases:
      ...     print base
      >>> for member in t.members:
      ...     print member
      
      Also added new "is_bitfield" property to the SBTypeMember objects that will return the result of SBTypeMember::IsBitfield(), and "bitfield_bit_size" which will return the result of SBTypeMember::GetBitfieldSizeInBits();
      
      I also fixed "SBTypeMember::GetOffsetInBytes()" to return the correct byte offset.
      
      llvm-svn: 161091
      1811b4fa
    • Jason Molenda's avatar
      When building up the UnwindPlan based on eh_frame unwind · fa67e879
      Jason Molenda authored
      instructions, be sure to allocate new UnwindPlan::Row's each
      time we push a row on to the UnwindPlan so we don't mutate 
      it any further.
      
      (fallout from changing the UnwindPlan from having a vector
      of Row's to having a vector of RowSP shared pointers.)
      
      <rdar://problem/11997385> 
      
      llvm-svn: 161089
      fa67e879
  30. Jul 24, 2012
  31. Jul 19, 2012
  32. Jul 18, 2012
  33. Jul 17, 2012
  34. Jul 14, 2012
    • Jason Molenda's avatar
      Switch nearly all of the use of the UnwindPlan::Row's to go through · 1d42c7bc
      Jason Molenda authored
      a shared pointer to ease some memory management issues with a patch
      I'm working on.
      
      The main complication with using SPs for these objects is that most
      methods that build up an UnwindPlan will construct a Row to a given
      instruction point in a function, then add additional regsaves in
      the next instruction point to that row and push it again.  A little
      care is needed to not mutate the previous instruction point's Row
      once these are switched to being held behing shared pointers.
      
      llvm-svn: 160214
      1d42c7bc
    • Greg Clayton's avatar
      <rdar://problem/11870357> · 685c88c5
      Greg Clayton authored
      Allow "frame variable" to find ivars without the need for "this->" or "self->".  
      
      llvm-svn: 160211
      685c88c5
  35. Jul 13, 2012
  36. Jul 12, 2012
Loading