Skip to content
  1. Mar 29, 2012
  2. 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
  3. Mar 22, 2012
  4. Mar 21, 2012
  5. Mar 20, 2012
  6. 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
  7. 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
  8. Mar 13, 2012
  9. 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
  10. Mar 09, 2012
  11. Mar 08, 2012
  12. Mar 07, 2012
    • Greg Clayton's avatar
      <rdar://problem/10997402> · e7612134
      Greg Clayton authored
      This fix really needed to happen as a previous fix I had submitted for
      calculating symbol sizes made many symbols appear to have zero size since
      the function that was calculating the symbol size was calling another function
      that would cause the calculation to happen again. This resulted in some symbols
      having zero size when they shouldn't. This could then cause infinite stack
      traces and many other side affects.
      
      llvm-svn: 152244
      e7612134
    • Johnny Chen's avatar
      rdar://problem/10611315 · c79c93ad
      Johnny Chen authored
      expression command doesn't handle xmm or stmm registers...
      
      o Update ClangASTContext::GetBuiltinTypeForEncodingAndBitSize() to now handle eEncodingVector.
      
      o Modify RegisterValue::SetFromMemoryData() to fix the subtle error due to unitialized variables.
      
      o Add a test file for "expr $xmm0".
      
      llvm-svn: 152190
      c79c93ad
    • Enrico Granata's avatar
      Using the new ScriptInterpreterObject in the implementation of synthetic... · a73b7df7
      Enrico Granata authored
      Using the new ScriptInterpreterObject in the implementation of synthetic children to enhance type safety
      Several places in the ScriptInterpreter interface used StringList objects where an std::string would suffice - Fixed
      Refactoring calls that generated special-purposes functions in the Python interpreter to use helper functions instead of duplicating blobs of code
      
      llvm-svn: 152164
      a73b7df7
    • Enrico Granata's avatar
      Fixing an issue where a ValueObject had changed its value but the 'value... · 297e69f1
      Enrico Granata authored
      Fixing an issue where a ValueObject had changed its value but the 'value changed' flag was not being set. This was breaking one of our test cases
      
      llvm-svn: 152161
      297e69f1
  13. Mar 06, 2012
  14. Mar 03, 2012
    • Enrico Granata's avatar
      added a new formatter for CF(Mutable)BitVector · 385ad4e4
      Enrico Granata authored
      fixed a few potential NULL-pointer derefs in ValueObject
      we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits
      added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain
      
      llvm-svn: 151962
      385ad4e4
  15. Mar 02, 2012
    • Johnny Chen's avatar
      rdar://problem/10652076 · 213ba7c7
      Johnny Chen authored
      Add logic to GDBRemoteRegisterContext class to be able to read/write a "composite" register
      which has "primordial" registers as its constituents.  In particular, Read/WriteRegisterBytes()
      now delegate to Get/SetPrimordialRegister() helper methods to read/write register contents.
      
      Also modify RegisterValue class to be able to parse "register write" string value for the
      NEON quadword registers which is displayed as a vector of uint8's.
      
      Example:
      
      (lldb) register write q0 "{0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}"
      (lldb) register read q0
      q0 = {0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}
      (lldb) register read --format uint8_t[] s0
      s0 = {0x01 0x02 0x03 0x04}
      (lldb) register read --format uint8_t[] d0
      d0 = {0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08}
      (lldb) register read --format uint8_t[] d1
      d1 = {0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}
      
      llvm-svn: 151939
      213ba7c7
    • Enrico Granata's avatar
      having std::vector still show children even if it now has a builtin summary -... · 8dfdd894
      Enrico Granata authored
      having std::vector still show children even if it now has a builtin summary - having the std::vector test case deal with the fact that we now have said builtin summary
      
      llvm-svn: 151870
      8dfdd894
    • Enrico Granata's avatar
      (a) adding formatters for: · 8d5c83f6
      Enrico Granata authored
       NSTimeZone and CFTimeZonRef
       SEL and related types
       CFGregorianDate
      
      llvm-svn: 151866
      8d5c83f6
  16. Mar 01, 2012
    • Enrico Granata's avatar
      (a) adding an introspection formatter for NS(Mutable)IndexSet · 896cd1d3
      Enrico Granata authored
      (b) fixes and improvements to the formatters for NSDate and NSString
      (c) adding an introspection formatter for NSCountedSet
      (d) making the Objective-C formatters test cases pass on both 64 and 32 bit
          one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass
      
      llvm-svn: 151826
      896cd1d3
    • Enrico Granata's avatar
      1) solving a bug where, after Jim's fixes to stack frames, synthetic children... · 0c489f58
      Enrico Granata authored
      1) solving a bug where, after Jim's fixes to stack frames, synthetic children were not recalculated when necessary, causing them to get out of sync with live data
      2) providing an updated list of tagged pointers values for the objc_runtime module - hopefully this one is final
      3) changing ValueObject::DumpValueObject to use an Options class instead of providing a bulky list of parameters to pass around
         this change had been laid out previously, but some clients of DumpValueObject() were still using the old prototype and some arguments
         were treated in a special way and passed in directly instead of through the Options class
      4) providing new GetSummaryAsCString() and GetValueAsCString() calls in ValueObject that are passed a formatter object and a destination string
         and fill the string by formatting themselves using the formatter argument instead of the default for the current ValueObject
      5) removing the option to have formats and summaries stick to a variable for the current stoppoint
         after some debate, we are going with non-sticky: if you say frame variable --format hex foo, the hex format will only be applied to the current command execution and not stick when redisplaying foo
         the other option would be full stickiness, which means that foo would be formatted as hex for its whole lifetime
         we are open to suggestions on what feels "natural" in this regard
      
      llvm-svn: 151801
      0c489f58
    • Sean Callanan's avatar
      Updated LLVM to take a new MC JIT that supports · d5f33a86
      Sean Callanan authored
      allocations by section.  We install these sections
      in the target process and inform the JIT of their
      new locations.
      
      Also removed some unused variable warnings.
      
      llvm-svn: 151789
      d5f33a86
  17. Feb 29, 2012
    • Enrico Granata's avatar
      This commit: · 7bc0ec3a
      Enrico Granata authored
       a) adds a Python summary provider for NSDate
       b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around
       c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side
       d) contains much needed performance improvements:
          1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time
          2) redundant memory reads in the Python ObjC runtime wrapper are eliminated
          3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object
       e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure
      
      llvm-svn: 151703
      7bc0ec3a
  18. Feb 28, 2012
    • Greg Clayton's avatar
      <rdar://problem/10017623> · 70a08d99
      Greg Clayton authored
      Fixed an error where if we tried to format a ValueObject using a format
      that was incorrect for a variable, then it would set ValueObject::m_error
      to an error state and stop the value from being able to be updated. We now
      leave m_error alone and only let the update value code change that. Any errors
      in formatting will return a valid value as C string that contains an error 
      string. This lets us then modify the format and redisplay without any issues.
      
      llvm-svn: 151581
      70a08d99
  19. Feb 27, 2012
  20. Feb 26, 2012
    • Greg Clayton's avatar
      Made a ModuleSpec class in Module.h which can specify a module using one or · b9a01b39
      Greg Clayton authored
      more of the local path, platform path, associated symbol file, UUID, arch,
      object name and object offset. This allows many of the calls that were
      GetSharedModule to reduce the number of arguments that were used in a call
      to these functions. It also allows a module to be created with a ModuleSpec
      which allows many things to be specified prior to any accessors being called
      on the Module class itself. 
      
      I was running into problems when adding support for "target symbol add"
      where you can specify a stand alone debug info file after debugging has started
      where I needed to specify the associated symbol file path and if I waited until
      after construction, the wrong  symbol file had already been located. By using
      the ModuleSpec it allows us to construct a module with as little or as much
      information as needed and not have to change the parameter list.
      
      llvm-svn: 151476
      b9a01b39
  21. Feb 24, 2012
    • Greg Clayton's avatar
      Fixed a crasher that was happening after making ObjectFile objects have a · c7f09cca
      Greg Clayton authored
      weak reference back to the Module. We were crashing when trying to make a
      memory object file since it was trying to get the object in the Module 
      constructor before the "Module *" had been put into a shared pointer, and the
      module was trying to initialize a weak pointer back to it.
      
      llvm-svn: 151397
      c7f09cca
Loading