Skip to content
  1. Oct 31, 2011
  2. Oct 29, 2011
  3. Oct 27, 2011
    • Greg Clayton's avatar
      Added support for the new ".apple_objc" accelerator tables. These tables are · 5009f9d5
      Greg Clayton authored
      in the same hashed format as the ".apple_names", but they map objective C
      class names to all of the methods and class functions. We need to do this 
      because in the DWARF the methods for Objective C are never contained in the
      class definition, they are scattered about at the translation unit level and
      they don't even have attributes that say the are contained within the class
      itself. 
      
      Added 3 new formats which can be used to display data:
      
          eFormatAddressInfo
          eFormatHexFloat
          eFormatInstruction
          
      eFormatAddressInfo describes an address such as function+offset and file+line,
      or symbol + offset, or constant data (c string, 2, 4, 8, or 16 byte constants).
      The format character for this is "A", the long format is "address".
      
      eFormatHexFloat will print out the hex float format that compilers tend to use.
      The format character for this is "X", the long format is "hex float".
      
      eFormatInstruction will print out disassembly with bytes and it will use the
      current target's architecture. The format character for this is "i" (which
      used to be being used for the integer format, but the integer format also has
      "d", so we gave the "i" format to disassembly), the long format is 
      "instruction".
      
      Mate the lldb::FormatterChoiceCriterion enumeration private as it should have
      been from the start. It is very specialized and doesn't belong in the public 
      API.
      
      llvm-svn: 143114
      5009f9d5
  4. Oct 26, 2011
  5. Oct 23, 2011
  6. Oct 19, 2011
    • Greg Clayton's avatar
      Moved lldb::user_id_t values to be 64 bit. This was going to be needed for · 81c22f61
      Greg Clayton authored
      process IDs, and thread IDs, but was mainly needed for for the UserID's for
      Types so that DWARF with debug map can work flawlessly. With DWARF in .o files
      the type ID was the DIE offset in the DWARF for the .o file which is not
      unique across all .o files, so now the SymbolFileDWARFDebugMap class will
      make the .o file index part (the high 32 bits) of the unique type identifier
      so it can uniquely identify the types.
      
      llvm-svn: 142534
      81c22f61
  7. Oct 14, 2011
    • Greg Clayton's avatar
      Added the ability to run expressions in any command. Expressions can be · 5a31471e
      Greg Clayton authored
      inserted in commands by using backticks:
      
      (lldb) memory read `$rsp-16` `$rsp+16`
      (lldb) memory read  -c `(int)strlen(argv[0])` `argv[0]`
      
      The result of the expression will be inserted into the command as a sort of
      preprocess stage where this gets done first. We might need to tweak where this
      preprocess stage goes, but it is very functional already.
      
      Added ansi color support to the Debugger::FormatPrompt() so you can use things
      like "${ansi.fg.blue}" and "${ansi.bold}" many more. This helps in adding 
      colors to your prompts without needing to know the ANSI color code strings.
      
      llvm-svn: 141948
      5a31471e
  8. Oct 13, 2011
  9. Oct 12, 2011
  10. Oct 08, 2011
  11. Oct 07, 2011
    • Greg Clayton's avatar
      Re-organized the contents of RangeMap.h to be more concise and also allow for... · cf0e4f0d
      Greg Clayton authored
      Re-organized the contents of RangeMap.h to be more concise and also allow for a Range, RangeArray, RangeData (range + data), or a RangeDataArray. We have many range implementations in LLDB and I will be converting over to using the classes in RangeMap.h so we can have one set of code that does ranges and searching  of ranges.
      
      Fixed up DWARFDebugAranges to use the new range classes.
      
      Fixed the enumeration parsing to take a lldb_private::Error to avoid a lot of duplicated code. Now when an invalid enumeration is supplied, an error will be returned and that error will contain a list of the valid enumeration values.
      
      llvm-svn: 141382
      cf0e4f0d
  12. Oct 06, 2011
  13. Oct 01, 2011
    • Greg Clayton's avatar
      Fixed an issue where a variable whose value is in a register might end up · bdf3162f
      Greg Clayton authored
      not saying that its children are load addresses.
      
      llvm-svn: 140921
      bdf3162f
    • Greg Clayton's avatar
      Cleaned up the the code that figures out the inlined stack frames given a · 1ed54f50
      Greg Clayton authored
      symbol context that represents an inlined function. This function has been
      renamed internally to:
      
      bool
      SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc, 
                                              SymbolContext &next_frame_sc, 
                                              Address &next_frame_pc) const;
                                              
      And externally to:
      
      SBSymbolContext
      SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc, 
                                                SBAddress &parent_frame_addr) const;
      
      The correct blocks are now correctly calculated.
      
      Switched the stack backtracing engine (in StackFrameList) and the address
      context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...) 
      so all inlined callstacks will match exactly.
      
      llvm-svn: 140910
      1ed54f50
  14. Sep 26, 2011
    • Greg Clayton's avatar
      Added more functionality to the public API to allow for better · 8f7180b1
      Greg Clayton authored
      symbolication. Also improved the SBInstruction API to allow
      access to the instruction opcode name, mnemonics, comment and
      instruction data.
      
      Added the ability to edit SBLineEntry objects (change the file,
      line and column), and also allow SBSymbolContext objects to be
      modified (set module, comp unit, function, block, line entry
      or symbol). 
      
      The SymbolContext and SBSymbolContext can now generate inlined
      call stack infomration for symbolication much easier using the
      SymbolContext::GetParentInlinedFrameInfo(...) and 
      SBSymbolContext::GetParentInlinedFrameInfo(...) methods.
      
      llvm-svn: 140518
      8f7180b1
  15. Sep 24, 2011
    • Greg Clayton's avatar
      Added to the public API to allow symbolication: · cac9c5f9
      Greg Clayton authored
      - New SBSection objects that are object file sections which can be accessed
        through the SBModule classes. You can get the number of sections, get a 
        section at index, and find a section by name.
      - SBSections can contain subsections (first find "__TEXT" on darwin, then
        us the resulting SBSection to find "__text" sub section).
      - Set load addresses for a SBSection in the SBTarget interface
      - Set the load addresses of all SBSection in a SBModule in the SBTarget interface
      - Add a new module the an existing target in the SBTarget interface
      - Get a SBSection from a SBAddress object
      
      This should get us a lot closer to being able to symbolicate using LLDB through
      the public API.
      
      llvm-svn: 140437
      cac9c5f9
  16. Sep 23, 2011
  17. Sep 22, 2011
    • Greg Clayton's avatar
      Converted the lldb_private::Process over to use the intrusive · c14ee32d
      Greg Clayton authored
      shared pointers.
      
      Changed the ExecutionContext over to use shared pointers for
      the target, process, thread and frame since these objects can
      easily go away at any time and any object that was holding onto
      an ExecutionContext was running the risk of using a bad object.
      
      Now that the shared pointers for target, process, thread and
      frame are just a single pointer (they all use the instrusive
      shared pointers) the execution context is much safer and still
      the same size. 
      
      Made the shared pointers in the the ExecutionContext class protected
      and made accessors for all of the various ways to get at the pointers,
      references, and shared pointers.
      
      llvm-svn: 140298
      c14ee32d
    • Jason Molenda's avatar
      Fix printf call in SearchFilterByModuleList::GetDescription. · 12017237
      Jason Molenda authored
      llvm-svn: 140289
      12017237
  18. Sep 21, 2011
    • Greg Clayton's avatar
      The first part of a fix for being able to select an architecture slice from · 593577a1
      Greg Clayton authored
      a file when the target has a triple with an unknown vendor and/or OS and the
      slice of the file itself has a valid vendor and/or OS.
      
      The Module now adopts the ObjectFile's architecture after a valid architecture
      has been loaded to make sure the module matches the object file.
      
      llvm-svn: 140236
      593577a1
    • Jim Ingham's avatar
      Add a new breakpoint type "break by source regular expression". · 969795f1
      Jim Ingham authored
      Fix the RegularExpression class so it has a real copy constructor.
      Fix the breakpoint setting with multiple shared libraries so it makes
        one breakpoint not one per shared library.
      Add SBFileSpecList, to be used to expose the above to the SB interface (not done yet.)
      
      llvm-svn: 140225
      969795f1
  19. Sep 20, 2011
  20. Sep 18, 2011
    • Greg Clayton's avatar
      Don't put modules for .o files into the global shared module list. We · 762f7135
      Greg Clayton authored
      used to do this because we needed to find the shared pointer for a .o
      file when the .o file's module was needed in a SymbolContext since the
      module in a symbol context was a shared pointer. Now that we are using
      intrusive pointers we don't have this limitation anymore since any
      instrusive shared pointer can be made from a pointer to an object
      all on its own.
      
      Also switched over to having the Module and SymbolVendor use shared 
      pointers to their object files as had a leak on MacOSX when the 
      SymbolVendor's object file wasn't the same as the Module's (debug info
      in a stand along file (dSYM file)). Now everything will correctly clean
      itself up when the module goes away after an executable gets rebuilt.
      
      Now we correctly get rid of .o files that are used with the DWARF with 
      debug map executables on subsequent runs since the only shared pointer
      to the object files in from the DWARF symbol file debug map parser, and
      when the module gets replaced, it destroys to old one along with all .o 
      files. 
      
      Also added a small optimization when using BSD archives where we will
      remove old BSD containers from the shared list when they are outdated.
      
      llvm-svn: 140002
      762f7135
  21. Sep 17, 2011
    • Greg Clayton's avatar
      Adopt the intrusive pointers in: · 4d122c40
      Greg Clayton authored
      lldb_private::Breakpoint
      lldb_private::BreakpointLocations
      lldb_private::BreakpointSite
      lldb_private::Debugger
      lldb_private::StackFrame
      lldb_private::Thread
      lldb_private::Target
      
      llvm-svn: 139985
      4d122c40
    • Greg Clayton's avatar
      Removed the function: · a2eee184
      Greg Clayton authored
      	ModuleSP
      	Module::GetSP();
      
      Since we are now using intrusive ref counts, we can easily turn any
      pointer to a module into a shared pointer just by assigning it.
      	
      
      llvm-svn: 139984
      a2eee184
    • Greg Clayton's avatar
      Convert lldb::ModuleSP to use an instrusive ref counted pointer. · 747bcb03
      Greg Clayton authored
      We had some cases where getting the shared pointer for a module from
      the global module list was causing a performance issue when debugging
      with DWARF in .o files. Now that the module uses intrusive ref counts,
      we can easily convert any pointer to a shared pointer.
      
      llvm-svn: 139983
      747bcb03
  22. Sep 15, 2011
  23. Sep 13, 2011
  24. Sep 12, 2011
  25. Sep 11, 2011
Loading