Skip to content
  1. Apr 26, 2012
  2. Apr 25, 2012
  3. Apr 24, 2012
    • Enrico Granata's avatar
      This patch fixes a bug where LLDB was incorrectly setting the address-size on... · b046e032
      Enrico Granata authored
      This patch fixes a bug where LLDB was incorrectly setting the address-size on a DataExtractor to be sizeof(void*) when the ValueObject came out of the expression parser
      This worked correctly for 64-bit targets, but broke down data formatters in i386 mode. The formatters would try to read pointers out of the frozen-dried objects,
      but were unable to do so because they would try fetching 8 bytes from a DataExtractor with only 4 bytes in it. This patch fixes the issue by always making the pointer-size
      for a DataExtractor match the target setting.
      
      llvm-svn: 155418
      b046e032
    • Greg Clayton's avatar
      Added the ability to log a message with a backtrace when verbose logging is... · d61c0fc0
      Greg Clayton authored
      Added the ability to log a message with a backtrace when verbose logging is enabled to the Module class. Used this new function in the DWARF parser.
      
      llvm-svn: 155404
      d61c0fc0
    • Greg Clayton's avatar
      <rdar://problem/11282938> · 2dafd8ed
      Greg Clayton authored
      Fixed an issue where we get NULL compile units back from the symbol vendor. We need symbol vendors to be able to quickly give an estimate of the compile units that they have without having to fully vette them first, so anyone getting compile units from a module should be able to deal with a NULL compile unit being returned for a given index.
      
      llvm-svn: 155398
      2dafd8ed
  4. Apr 20, 2012
  5. Apr 11, 2012
  6. Apr 09, 2012
    • Greg Clayton's avatar
      <rdar://problem/11202426> · 0cd70866
      Greg Clayton authored
      Work around a deadlocking issue where "SBDebugger::MemoryPressureDetected ()" is being called and is causing a deadlock. We now just try and get the lock when trying to trim down the unique modules so we don't deadlock debugger GUI programs until we can find the root cause.
      
      llvm-svn: 154339
      0cd70866
  7. Apr 06, 2012
    • Greg Clayton's avatar
      Fixed ModuleList::FindTypes() so that when a symbol context is supplied that... · 780af515
      Greg Clayton authored
      Fixed ModuleList::FindTypes() so that when a symbol context is supplied that contains a valid module, it will search that module first, then if we are still looking for matches (we have found less that "max_matches"), search in all of the other modules as well.
      
      llvm-svn: 154186
      780af515
    • Greg Clayton's avatar
      In a prior commit, I changed the parameters around on a ModuleList::FindTypes... · 29399a24
      Greg Clayton authored
      In a prior commit, I changed the parameters around on a ModuleList::FindTypes where the old parameters that existing clients were using would have been compatible, so I renamed ModuleList::FindTypes to ModuleList::FindTypes2. Then I made fixes and verified I updated and fixed all client code, but I forgot to rename the function back to ModuleList::FindTypes(). I am doing that now and also cleaning up the C++ dynamic type code a bit.
      
      llvm-svn: 154182
      29399a24
  8. Apr 04, 2012
  9. Mar 30, 2012
    • Greg Clayton's avatar
      <rdar://problem/11148044> · c15f55e2
      Greg Clayton authored
      Fixed a potential crasher that could happen after Debugger::Terminate() was called.
      
      llvm-svn: 153774
      c15f55e2
    • Sean Callanan's avatar
      Be more careful when overriding the type for a · 356e17ce
      Sean Callanan authored
      ValueObject, and make sure that ValueObjects that
      have null type names (because they have null types)
      also have null qualified type names.  This avoids
      some potential crashes if 
      ValueObject::GetQualifiedTypeName tries to get the
      name of their type by calling GetClangTypeImpl().
      
      llvm-svn: 153718
      356e17ce
  10. Mar 29, 2012
  11. Mar 27, 2012
    • Enrico Granata's avatar
      adding a summary for Objective-C type 'Class' · bf70ee97
      Enrico Granata authored
      llvm-svn: 153541
      bf70ee97
    • Greg Clayton's avatar
      lldb_private::Section objects have a boolean flag that can be set that · 741f3f9a
      Greg Clayton authored
      indicates that the section is thread specific. Any functions the load a module
      given a slide, will currently ignore any sections that are thread specific.
      
      lldb_private::Section now has:
      
      bool
      Section::IsThreadSpecific () const
      {
          return m_thread_specific;
      }
      
      void
      Section::SetIsThreadSpecific (bool b)
      {
          m_thread_specific = b;
      }
      
      The ELF plug-in has been modified to set this for the ".tdata" and the ".tbss"
      sections.
      
      Eventually we need to have each lldb_private::Thread subclass be able to 
      resolve a thread specific section, but for now they will just not resolve. The
      code for that should be trivual to add, but the address resolving functions
      will need to be changed to take a "ExecutionContext" object instead of just
      a target so that thread specific sections can be resolved.
      
      llvm-svn: 153537
      741f3f9a
    • Enrico Granata's avatar
      Synthetic values are now automatically enabled and active by default. SBValue... · c5bc412c
      Enrico Granata authored
      Synthetic values are now automatically enabled and active by default. SBValue is set up to always wrap a synthetic value when one is available.
      A new setting enable-synthetic-value is provided on the target to disable this behavior.
      There also is a new GetNonSyntheticValue() API call on SBValue to go back from synthetic to non-synthetic. There is no call to go from non-synthetic to synthetic.
      The test suite has been changed accordingly.
      Fallout from changes to type searching: an hack has to be played to make it possible to use maps that contain std::string due to the special name replacement operated by clang
      Fixing a test case that was using libstdcpp instead of libc++ - caught as a consequence of said changes to type searching
      
      llvm-svn: 153495
      c5bc412c
    • Greg Clayton's avatar
      <rdar://problem/11113279> · 84db9105
      Greg Clayton authored
      Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not). 
      
      This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method.
      
      This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB.
      
      llvm-svn: 153482
      84db9105
  12. Mar 22, 2012
  13. Mar 21, 2012
  14. Mar 20, 2012
  15. Mar 19, 2012
    • Enrico Granata's avatar
      Massive enumeration name changes: a number of enums in ValueObject were not... · 86cc9829
      Enrico Granata authored
      Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern
      Changes to synthetic children:
       - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points
         this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed
       - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly)
         claim to itself be synthetic
       - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible
       - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself
       - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place)
      Some clean ups to the summary generation code
      Centralized the code that clears out user-visible strings and data in ValueObject
      More efficient summaries for libc++ containers
      
      llvm-svn: 153061
      86cc9829
    • Greg Clayton's avatar
      <rdar://problem/11072382> · f9be6933
      Greg Clayton authored
      Fixed a case where the source path remappings on the module were too expensive to
      use when we try to verify (stat the file system) that the remapped path points to
      a valid file. Now we will use the lldb_private::Module path remappings (if any) when
      parsing the debug info without verifying that the paths exist so we don't slow down
      line table parsing speeds.
      
      llvm-svn: 153059
      f9be6933
  16. Mar 15, 2012
    • Greg Clayton's avatar
      <rdar://problem/8196933> · d804d285
      Greg Clayton authored
      Use the metadata in the dSYM bundle Info.plist to remap source paths when they keys are available.
      
      llvm-svn: 152836
      d804d285
  17. Mar 13, 2012
  18. Mar 12, 2012
    • Enrico Granata's avatar
      Added formatters for libc++ (http://libcxx.llvm.org): · c7f87306
      Enrico Granata authored
       std::string has a summary provider
       std::vector std::list and std::map have both a summary and a synthetic children provider
      Given the usage of a custom namespace (std::__1::classname) for the implementation of libc++, we keep both libstdcpp and libc++ formatters enabled at the same time since that raises no conflicts and enabled for seamless transition between the two
      The formatters for libc++ reside in a libcxx category, and are loaded from libcxx.py (to be found in examples/synthetic)
      
      The formatters-stl test cases have been divided to be separate for libcxx and libstdcpp. This separation is necessary because
       (a) we need different compiler flags for libc++ than for libstdcpp
       (b) libc++ inlines a lot more than libstdcpp and some code changes were required to accommodate this difference
      
      llvm-svn: 152570
      c7f87306
  19. Mar 09, 2012
  20. Mar 08, 2012
Loading