Skip to content
  1. Oct 05, 2012
    • Jason Molenda's avatar
      Ran the sources through the compiler with -Wshadow warnings · ccd41e55
      Jason Molenda authored
      enabled after we'd found a few bugs that were caused by shadowed
      local variables; the most important issue this turned up was
      a common mistake of trying to obtain a mutex lock for the scope
      of a code block by doing
      
              Mutex::Locker(m_map_mutex);
      
      This doesn't assign the lock object to a local variable; it is
      a temporary that has its dtor called immediately.  Instead,
      
              Mutex::Locker locker(m_map_mutex);
      
      does what is intended.  For some reason -Wshadow happened to
      highlight these as shadowed variables.
      
      I also fixed a few obivous and easy shadowed variable issues
      across the code base but there are a couple dozen more that
      should be fixed when someone has a free minute.
      <rdar://problem/12437585>
      
      llvm-svn: 165269
      ccd41e55
  2. Sep 25, 2012
    • Sean Callanan's avatar
      Removed some debugging cruft. · c2bd8c21
      Sean Callanan authored
      llvm-svn: 164572
      c2bd8c21
    • 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
  3. 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
    • Greg Clayton's avatar
      bb011f73
  4. Sep 18, 2012
  5. Sep 14, 2012
  6. Sep 11, 2012
    • Sean Callanan's avatar
      This patch is part of ongoing work to extract type · bc47dfcb
      Sean Callanan authored
      information from the Objective-C runtime.
      
      This patch takes the old AppleObjCSymbolVendor and
      replaces it with an AppleObjCTypeVendor, which is
      much more lightweight.  Specifically, the SymbolVendor
      needs to pretend that there is a backing symbol file
      for the Types it vends, whereas a TypeVendor only
      vends bare ClangASTTypes.  These ClangASTTypes only
      need to exist in an ASTContext.
      
      The ClangASTSource now falls back to the runtime's
      TypeVendor (if one exists) if the debug information
      doesn't find a complete type for a particular
      Objective-C interface.  The runtime's TypeVendor
      maintains an ASTContext full of types it knows about,
      and re-uses the ISA-based type query information used
      by the ValueObjects.
      
      Currently, the runtime's TypeVendor doesn't provide
      useful answers because we haven't yet implemented a
      way to iterate across all ISAs contained in the target
      process's runtime.  That's the next step.
      
      llvm-svn: 163651
      bc47dfcb
    • Filipe Cabecinhas's avatar
      Some more typing-related fixes. · d0b87d81
      Filipe Cabecinhas authored
      llvm-svn: 163641
      d0b87d81
  7. Sep 06, 2012
  8. 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
  9. Aug 18, 2012
  10. Aug 16, 2012
  11. Aug 11, 2012
  12. Aug 09, 2012
  13. Aug 04, 2012
  14. Aug 01, 2012
    • Sean Callanan's avatar
      Instructions generated by a disassembler can now · 7e6d4e5a
      Sean Callanan authored
      keep a shared pointer to their disassembler.  This
      is important for the LLVM-C disassembler because
      it needs to lock its parent in order to disassemble
      itself.
      
      This means that every interface that returned a
      Disassembler* needs to return a DisassemblerSP, so
      that the instructions and any external owners share
      the same reference count on the object.  I changed
      all clients to use this shared pointer, which also
      plugged a few leaks.
      
      <rdar://problem/12002822>
      
      llvm-svn: 161123
      7e6d4e5a
  15. Jul 28, 2012
  16. Jul 27, 2012
    • Sean Callanan's avatar
      Changed the IRForTarget pass to ensure that all · bad134ff
      Sean Callanan authored
      sel_getName() calls are generated for all Objective-C
      selectors before static literals are moved to the
      static allocation.  This prevents errors of the form
      
      Internal error [IRForTarget]: Couldn't change a static
      reference to an Objective-C selector to a dynamic
      reference
      
      <rdar://problem/11331906>
      
      llvm-svn: 160887
      bad134ff
  17. Jul 21, 2012
    • Sean Callanan's avatar
      Added a fix that allows newly-constructed objects · 6e6d4a62
      Sean Callanan authored
      to returned by expressions, by removing the
      __cxa_atexit call that would normally cause these
      objects to be destroyed.  This also prevents many
      errors of the form
      
      Couldn't rewrite one of the arguments of a function call
      error: Couldn't materialize struct: Structure hasn't been laid out yet
      
      <rdar://problem/11309402>
      
      llvm-svn: 160596
      6e6d4a62
  18. Jul 18, 2012
    • Greg Clayton's avatar
      <rdar://problem/10998370> · 5e0c5e81
      Greg Clayton authored
      Improved the error message when we can find a function in the current program by printing the demangled name.
      
      Also added the ability to create lldb_private::Mangled instances with a ConstString when we already have a ConstString for a mangled or demangled name. Also added the ability to call SetValue with a ConstString and also without a boolean to indicate if the string is mangled where we will now auto-detect if the string is mangled.
      
      llvm-svn: 160450
      5e0c5e81
  19. Jul 17, 2012
  20. Jul 14, 2012
  21. Jul 13, 2012
  22. Jul 04, 2012
  23. Jun 09, 2012
    • Sean Callanan's avatar
      Minor fixes for ARM/iOS targets: · e3333d69
      Sean Callanan authored
      - On iOS, we select the "apcs-gnu" ABI to match
        what libraries expect.
      
      - Literals are now allocated at their preferred
        alignment, eliminating many alignment crashes.
      
      llvm-svn: 158236
      e3333d69
  24. May 31, 2012
  25. May 30, 2012
  26. May 22, 2012
  27. May 21, 2012
  28. May 16, 2012
    • Sean Callanan's avatar
      Enabled C++11 in the expression parser. auto and · 8d825786
      Sean Callanan authored
      various other syntactic sugar work.  Lambdas do
      not due to some problems relocating code containing
      lambdas.  Rvalue references work when returned from
      expressions, but need more testing.
      
      llvm-svn: 156948
      8d825786
  29. May 11, 2012
  30. 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
  31. May 09, 2012
Loading