Skip to content
  1. Jul 22, 2015
  2. Jul 20, 2015
  3. Jul 09, 2015
    • Pavel Labath's avatar
      Fix TestStopHookMultipleThreads and TestNamespace after r241751 · 89ad5940
      Pavel Labath authored
      The mentioned commit introduced a subtle change in behavior when printing variable names. This
      occured when we have a variable, for which we only know the demangled name, because the compiler
      has failed to provide one (this typically happens for variables in anonymous namespaces). A
      Mangled class which contains only a demangled name considers itself to be invalid (this could
      possibly be a bug), but it's GetName() method still returns a valid demangled name. The previous
      commit introduced the check for the validity of the class, and if it failed, it would fall back
      to printing the bare name (without the namespace prefixes, as the tests were expecting). I revert
      this part of the commit and check the validity of the string returned by GetName() instead.
      
      llvm-svn: 241795
      89ad5940
    • Greg Clayton's avatar
      Make many mangled functions that might demangle a name be allowed to specify a... · ddaf6a72
      Greg Clayton authored
      Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so.
      
      llvm-svn: 241751
      ddaf6a72
  4. Jul 08, 2015
  5. Jul 07, 2015
  6. Jul 06, 2015
    • Enrico Granata's avatar
      Add a GetDisplayName() API to SBFrame, SBFunction and SBSymbol · c1f705c2
      Enrico Granata authored
      This API is currently a no-op (in the sense that it has the same behavior as the already existing GetName()), but is meant long-term to provide a best-for-visualization version of the name of a function
      
      It is still not hooked up to the command line 'bt' command, nor to the 'gui' mode, but I do have ideas on how to make that work going forward
      
      rdar://21203242
      
      llvm-svn: 241482
      c1f705c2
  7. Jul 03, 2015
  8. Jun 25, 2015
    • Greg Clayton's avatar
      Resubmitting 240466 after fixing the linux test suite failures. · 358cf1ea
      Greg Clayton authored
      A few extras were fixed
      
      - Symbol::GetAddress() now returns an Address object, not a reference. There were places where people were accessing the address of a symbol when the symbol's value wasn't an address symbol. On MacOSX, undefined symbols have a value zero and some places where using the symbol's address and getting an absolute address of zero (since an Address object with no section and an m_offset whose value isn't LLDB_INVALID_ADDRESS is considered an absolute address). So fixing this required some changes to make sure people were getting what they expected. 
      - Since some places want to access the address as a reference, I added a few new functions to symbol:
          Address &Symbol::GetAddressRef();
          const Address &Symbol::GetAddressRef() const;
      
      Linux test suite passes just fine now.
      
      <rdar://problem/21494354>
      
      llvm-svn: 240702
      358cf1ea
    • Enrico Granata's avatar
      Handle (or at least don't crash) trying to get the encoding for a bunch of new... · 5e1be09d
      Enrico Granata authored
      Handle (or at least don't crash) trying to get the encoding for a bunch of new builtin types in clang trunk
      
      llvm-svn: 240606
      5e1be09d
  9. Jun 24, 2015
    • Tamas Berghammer's avatar
      Improve instruction emulation based stack unwinding on ARM · 44ff9cce
      Tamas Berghammer authored
      * Add and fix the emulation of several instruction.
      * Disable frame pointer usage on Android.
      * Specify return address register for the unwind plan instead of explict
        tracking the value of RA.
      * Replace prologue detection heuristics (unreliable in several cases)
        with a logic to follow the branch instructions and restore the CFI
        value based on them. The target address for a branch should have the
        same CFI as the source address (if they are in the same function).
      * Handle symbols in ELF files where the symbol size is not specified
        with calcualting their size based on the next symbol (already done
        in MachO files).
      * Fix architecture in FuncUnwinders with filling up the inforamtion
        missing from the object file with the architecture of the target.
      * Add code to read register wehn the value is set to "IsSame" as it
        meanse the value of a register in the parent frame is the same as the
        value in the current frame.
      
      Differential revision: http://reviews.llvm.org/D10447
      
      llvm-svn: 240533
      44ff9cce
  10. Jun 23, 2015
  11. Jun 19, 2015
  12. Jun 18, 2015
  13. Jun 15, 2015
    • Greg Clayton's avatar
      Found an issue that was causing types to be completed much more often than they needed to be. · 49e9010c
      Greg Clayton authored
      The problem is for lldb_private::Type instances that have encoding types (pointer/reference/const/volatile/restrict/typedef to type with user ID 0x123). If they started out with m_flags.clang_type_resolve_state being set to eResolveStateUnresolved (0), then when we would call Type::ResolveClangType(eResolveStateForward) we would complete the full type due to logic errors in the code. 
      
      We now only complete the type if clang_type_resolve_state is eResolveStateLayout or eResolveStateFull and we correctly upgrade the type's current completion state to eResolveStateForward after we make a forward delcaration to the pointer/reference/const/volatile/restrict/typedef type instead of leaving it set to eResolveStateUnresolved.
      
      llvm-svn: 239752
      49e9010c
  14. Jun 09, 2015
  15. Jun 01, 2015
  16. May 29, 2015
    • Zachary Turner's avatar
      Don't #include "lldb-python.h" from anywhere. · 1124045a
      Zachary Turner authored
      Since interaction with the python interpreter is moving towards
      being more isolated, we won't be able to include this header from
      normal files anymore, all includes of it should be localized to
      the python library which will live under source/bindings/API/Python
      after a future patch.
      
      None of the files that were including this header actually depended
      on it anyway, so it was just a dead include in every single instance.
      
      llvm-svn: 238581
      1124045a
  17. May 26, 2015
  18. May 13, 2015
  19. May 07, 2015
  20. May 06, 2015
    • Pavel Labath's avatar
      Simplify FuncUnwinders::GetEHFrameAugmentedUnwindPlan · ad5ee040
      Pavel Labath authored
      Summary:
      GetEHFrameAugmentedUnwindPlan duplicated the work of GetEHFrameUnwindPlan in getting the original
      plan from DWARF CFI. This changes the function to call GetEHFrameUnwindPlan instead of doing all
      the work itself. A copy constructor is added to UnwindPlan to enable plan copying.
      
      Test Plan: No regressions on linux test suite.
      
      Reviewers: jasonmolenda, clayborg
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D9369
      
      llvm-svn: 236607
      ad5ee040
  21. May 05, 2015
  22. Apr 22, 2015
  23. Apr 20, 2015
    • Sean Callanan's avatar
      This patch implements several improvements to the · f0c5aeb6
      Sean Callanan authored
      module-loading support for the expression parser.
      
      - It adds support for auto-loading modules referred
        to by a compile unit.  These references are
        currently in the form of empty translation units.
        This functionality is gated by the setting
      
        target.auto-import-clang-modules (boolean) = false
      
      - It improves and corrects support for loading
        macros from modules, currently by textually
        pasting all #defines into the user's expression.
        The improvements center around including only those
        modules that are relevant to the current context -
        hand-loaded modules and the modules that are imported
        from the current compile unit.
      
      - It adds an "opt-in" mechanism for all of this
        functionality.  Modules have to be explicitly
        imported (via @import) or auto-loaded (by enabling
        the above setting) to enable any of this
        functionality.
      
      It also adds support to the compile unit and symbol
      file code to deal with empty translation units that
      indicate module imports, and plumbs this through to
      the CompileUnit interface.
      
      Finally, it makes the following changes to the test
      suite:
      
      - It adds a testcase that verifies that modules are
        automatically loaded when the appropriate setting
        is enabled (lang/objc/modules-auto-import); and
      
      - It modifies lanb/objc/modules-incomplete to test
        the case where a module #undefs something that is
        #defined in another module.
      
      <rdar://problem/20299554>
      
      llvm-svn: 235313
      f0c5aeb6
  24. Apr 15, 2015
  25. Apr 13, 2015
  26. Apr 09, 2015
  27. Apr 08, 2015
    • Stephane Sezer's avatar
      Fix resolution of certain recursive types. · 9901e9c6
      Stephane Sezer authored
      Summary:
      If a struct type S has a member T that has a member that is a function that
      returns a typedef of S* the respective field would be duplicated, which caused
      an assert down the line in RecordLayoutBuilder. This patch adds a check that
      removes the possibility of trying to resolve the same type twice within the
      same callstack.
      
      This commit also adds unit tests for these failures.
      
      Fixes https://llvm.org/bugs/show_bug.cgi?id=20486.
      
      Patch by Cristian Hancila.
      
      Test Plan: Run unit tests.
      
      Reviewers: clayborg spyffe
      
      Subscribers: lldb-commits
      
      Differential Revision: http://reviews.llvm.org/D8561
      
      llvm-svn: 234441
      9901e9c6
  28. Apr 02, 2015
    • Zachary Turner's avatar
      Fix warnings generated by clang-cl. · 48b475cb
      Zachary Turner authored
      There were a couple of real bugs here regarding error checking and
      signed/unsigned comparisons, but mostly these were just noise.
      
      There was one class of bugs fixed here which is particularly
      annoying, dealing with MSVC's non-standard behavior regarding
      the underlying type of enums.  See the comment in
      lldb-enumerations.h for details.  In short, from now on please use
      FLAGS_ENUM and FLAGS_ANONYMOUS_ENUM when defining enums which
      contain values larger than can fit into a signed integer.
      
      llvm-svn: 233943
      48b475cb
    • Jason Molenda's avatar
      Add a tiny bit of hardening to the eh_frame and compact unwind parsing. · c48ef341
      Jason Molenda authored
      When we're seeing offsets that exceed the size of our section, don't 
      try to use that unwind info.
      <rdar://problem/20113673> 
      
      llvm-svn: 233886
      c48ef341
  29. Apr 01, 2015
    • Tamas Berghammer's avatar
      Correctly detect sign-ness of wchar_t · 3c0d0057
      Tamas Berghammer authored
      The underlying type of wchar_t is not defined by the standard. This CL
      add logic to correctly use the type specified for the current target
      based on TargetInfo.
      
      llvm-svn: 233795
      3c0d0057
  30. Mar 31, 2015
    • Tamas Berghammer's avatar
      Fix type detection for 'char' variables · dccbfaf9
      Tamas Berghammer authored
      A char can have signed and unsigned encoding but previously lldb always
      assumed it is signed. This CL adds a logic to detect the encoding of
      'char' types based on the default encoding on the target architecture.
      It fixes variable printing and expression evaluation on architectures
      where 'char' is signed by default.
      
      Differential revision: http://reviews.llvm.org/D8636
      
      llvm-svn: 233682
      dccbfaf9
  31. Mar 24, 2015
    • Zachary Turner's avatar
      Fix error introduced by changing function signatures. · a98fac28
      Zachary Turner authored
      Since ClangASTSource::layoutRecordType() was overriding a virtual
      function in the base, this was inadvertently causing a new method
      to be introduced rather than an override.  To fix this all method
      signatures are changed back to taking DenseMaps, and the `override`
      keyword is added to make sure this type of error doesn't happen
      again.
      
      To keep the original fix intact, which is that fields and bases
      must be added in offset order, the ImportOffsetMap() function
      now copies the DenseMap into a vector and then sorts the vector
      on the value type (e.g. the offset) before iterating over the
      sorted vector and inserting the items.
      
      llvm-svn: 233099
      a98fac28
Loading