Skip to content
  1. May 11, 2012
  2. May 10, 2012
    • Greg Clayton's avatar
      <rdar://problem/11330621> · ba812f42
      Greg Clayton authored
      Fixed the DisassemblerLLVMC disassembler to parse more efficiently instead of parsing opcodes over and over. The InstructionLLVMC class now only reads the opcode in the InstructionLLVMC::Decode function. This can be done very efficiently for ARM and architectures that have fixed opcode sizes. For x64 it still calls the disassembler to get the byte size.
      
      Moved the lldb_private::Instruction::Dump(...) function up into the lldb_private::Instruction class and it now uses the function that gets the mnemonic, operandes and comments so that all disassembly is using the same code.
      
      Added StreamString::FillLastLineToColumn() to allow filling a line up to a column with a character (which is used by the lldb_private::Instruction::Dump(...) function).
      
      Modified the Opcode::GetData() fucntion to "do the right thing" for thumb instructions.
      
      llvm-svn: 156532
      ba812f42
  3. May 09, 2012
  4. Apr 26, 2012
    • Sean Callanan's avatar
      Made the IR interpreter move all floats, not just "wide" · 822944c9
      Sean Callanan authored
      ones, to its own constant pool.  This reflects the fact
      that the LLVM code generators for different targets move
      floats to their constant pools under varying conditions,
      and the JIT cannot (yet) be relied upon to relocate references to
      its constant pool correctly.
      
      llvm-svn: 155660
      822944c9
  5. Apr 25, 2012
  6. Apr 24, 2012
    • Sean Callanan's avatar
      Fixed a crasher that occurs when an expression · 4538aa25
      Sean Callanan authored
      doesn't return a result.  If that expression can't
      be run in the current context (for example, if it
      uses a function and there is no running process)
      then we used to try to destroy the nonexistent
      result variable.  We now only destroy the result
      variable if we actually made one.
      
      llvm-svn: 155455
      4538aa25
  7. Apr 23, 2012
  8. Apr 17, 2012
  9. Apr 12, 2012
  10. Apr 07, 2012
  11. Apr 06, 2012
    • 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
  12. Apr 05, 2012
    • Sean Callanan's avatar
      Fixed a problem where we did not read properties · a658226a
      Sean Callanan authored
      correctly if the setter/getter were not present
      in the debug information.  The fixes are as follows:
      
      - We not only look for the method by its full name,
        but also look for automatically-generated methods
        when searching for a selector in an Objective-C
        interface.  This is necessary to find accessors.
      
      - Extract the getter and setter name from the
        DW_TAG_APPLE_Property declaration in the DWARF
        if they are present; generate them if not.
      
      llvm-svn: 154067
      a658226a
  13. Apr 03, 2012
  14. Mar 30, 2012
    • Enrico Granata's avatar
      Disabling blocks support because of rdar://problem/11024417 - This is... · 7f3296a6
      Enrico Granata authored
      Disabling blocks support because of rdar://problem/11024417 - This is hopefully just a temporary countermeasure
      
      llvm-svn: 153758
      7f3296a6
    • Greg Clayton's avatar
      <rdar://problem/11082392> · 219cf31f
      Greg Clayton authored
      Fixed an issue that could cause circular type parsing that will assert and kill LLDB.
      
      Prior to this fix the DWARF parser would always create class types and not start their definitions (for both C++ and ObjC classes) until we were asked to complete the class later. When we had cases like:
      
      class A
      {
          class B
          {
          };
      };
      
      We would alway try to complete A before specifying "A" as the decl context for B. Turns out we can just start the definition and still not complete the class since we can check the TagDecl::isCompleteDefinition() function. This only works for C++ types. This means we will not be pulling in the full definition of parent classes all the time and should help with our memory consumption and also reduce the amount of debug info we have to parse.
      
      I also reduced redundant code that was checking in a lldb::clang_type_t was a possible C++ dynamic type since it was still completing the type, just to see if it was dynamic. This was fixed in another function that was checking for a type being dynamic as an ObjC or a C++ type, but there was dedicated fucntion for C++ that we missed.
      
      llvm-svn: 153713
      219cf31f
  15. Mar 27, 2012
    • 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
  16. Mar 21, 2012
  17. Mar 20, 2012
  18. Mar 15, 2012
    • Sean Callanan's avatar
      Strengthened LLDB's completion of object types. · cf12862a
      Sean Callanan authored
      Now when LLDB reports a variable, it has a
      complete type.  Similarly, when it reports
      members of a struct, it completes their types.
      Also, when it creates the result variable for
      an expression, it ensures that variable's type
      is complete.
      
      This ensures compliance with Clang's
      expectations, preventing potential crashes.
      
      llvm-svn: 152771
      cf12862a
  19. Mar 14, 2012
    • Greg Clayton's avatar
      <rdar://problem/10434005> · d64afba5
      Greg Clayton authored
      Prepare LLDB to be built with C++11 by hiding all accesses to std::tr1 behind
      macros that allows us to easily compile for either C++.
      
      llvm-svn: 152698
      d64afba5
  20. Mar 10, 2012
  21. Mar 08, 2012
    • Sean Callanan's avatar
      Updated the revision of LLVM/Clang used by LLDB. · 226b70c1
      Sean Callanan authored
      This takes two important changes:
      
      - Calling blocks is now supported.  You need to
        cast their return values, but that works fine.
      
      - We now can correctly run JIT-compiled
        expressions that use floating-point numbers.
      
      Also, we have taken a fix that allows us to
      ignore access control in Objective-C as in C++.
      
      llvm-svn: 152286
      226b70c1
  22. 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
  23. Mar 06, 2012
  24. Mar 05, 2012
  25. Mar 02, 2012
  26. Mar 01, 2012
  27. Feb 29, 2012
  28. Feb 28, 2012
  29. Feb 27, 2012
  30. Feb 24, 2012
    • Greg Clayton's avatar
      <rdar://problem/10103468> · e72dfb32
      Greg Clayton authored
      I started work on being able to add symbol files after a debug session
      had started with a new "target symfile add" command and quickly ran into
      problems with stale Address objects in breakpoint locations that had 
      lldb_private::Section pointers into modules that had been removed or 
      replaced. This also let to grabbing stale modules from those sections. 
      So I needed to thread harded the Address, Section and related objects.
      
      To do this I modified the ModuleChild class to now require a ModuleSP
      on initialization so that a weak reference can created. I also changed
      all places that were handing out "Section *" to have them hand out SectionSP.
      All ObjectFile, SymbolFile and SymbolVendors were inheriting from ModuleChild
      so all of the find plug-in, static creation function and constructors now
      require ModuleSP references instead of Module *. 
      
      Address objects now have weak references to their sections which can
      safely go stale when a module gets destructed. 
      
      This checkin doesn't complete the "target symfile add" command, but it
      does get us a lot clioser to being able to do such things without a high
      risk of crashing or memory corruption.
      
      llvm-svn: 151336
      e72dfb32
  31. Feb 23, 2012
    • Sean Callanan's avatar
      Added support for looking up the complete type for · 7277284f
      Sean Callanan authored
      Objective-C classes.  This allows LLDB to find
      ivars declared in class extensions in modules other
      than where the debugger is currently stopped (we
      already supported this when the debugger was
      stopped in the same module as the definition).
      
      This involved the following main changes:
      
      - The ObjCLanguageRuntime now knows how to hunt
        for the authoritative version of an Objective-C
        type.  It looks for the symbol indicating a
        definition, and then gets the type from the
        module containing that symbol.
      
      - ValueObjects now report their type with a
        potential override, and the override is set if
        the type of the ValueObject is an Objective-C
        class or pointer type that is defined somewhere
        other than the original reported type.  This
        means that "frame variable" will always use the
        complete type if one is available.
      
      - The ClangASTSource now looks for the complete
        type when looking for ivars.  This means that
        "expr" will always use the complete type if one
        is available.
      
      - I added a testcase that verifies that both
        "frame variable" and "expr" work.
      
      llvm-svn: 151214
      7277284f
  32. Feb 18, 2012
    • Greg Clayton's avatar
      The second part in thread hardening the internals of LLDB where we make · d9e416c0
      Greg Clayton authored
      the lldb_private::StackFrame objects hold onto a weak pointer to the thread
      object. The lldb_private::StackFrame objects the the most volatile objects
      we have as when we are doing single stepping, frames can often get lost or
      thrown away, only to be re-created as another object that still refers to the
      same frame. We have another bug tracking that. But we need to be able to 
      have frames no longer be able to get the thread when they are not part of
      a thread anymore, and this is the first step (this fix makes that possible
      but doesn't implement it yet).
      
      Also changed lldb_private::ExecutionContextScope to return shared pointers to
      all objects in the execution context to further thread harden the internals.
      
      llvm-svn: 150871
      d9e416c0
    • Sean Callanan's avatar
      Ignore the constness of the object pointer when · 5056ab04
      Sean Callanan authored
      fetching it.
      
      llvm-svn: 150861
      5056ab04
  33. Feb 15, 2012
  34. Feb 10, 2012
Loading