Skip to content
  1. Nov 30, 2011
  2. Nov 29, 2011
  3. Nov 28, 2011
  4. Nov 22, 2011
  5. Nov 21, 2011
    • Greg Clayton's avatar
      Save the arguments for a process launch in the target.run-args so they can · 162b597c
      Greg Clayton authored
      easily be used in the next run.
      
      llvm-svn: 145051
      162b597c
    • Greg Clayton's avatar
      Many GDB users always want to display disassembly when they stop by using · e372b98d
      Greg Clayton authored
      something like "display/4i $pc" (or something like this). With LLDB we already
      were showing 3 lines of source before and 3 lines of source after the current
      source line when showing a stop context. We now improve this by allowing the
      user to control the number of lines with the new "stop-line-count-before" and
      "stop-line-count-after" settings. Also, there is a new setting for how many
      disassembly lines to show: "stop-disassembly-count". This will control how many
      source lines are shown when there is no source or when we have no source line
      info. 
      
      settings set stop-line-count-before 3
      settings set stop-line-count-after 3
      settings set stop-disassembly-count 4
      settings set stop-disassembly-display no-source
      
      The default values are set as shown above and allow 3 lines of source before 
      and after (what we used to do) the current stop location, and will display 4 
      lines of disassembly if the source is not available or if we have no debug
      info. If both "stop-source-context-before" and "stop-source-context-after" are
      set to zero, this will disable showing any source when stopped. The 
      "stop-disassembly-display" setting is an enumeration that allows you to control
      when to display disassembly. It has 3 possible values:
      
      "never" - never show disassembly no matter what
      "no-source" - only show disassembly when there is no source line info or the source files are missing
      "always" - always show disassembly.
      
      llvm-svn: 145050
      e372b98d
    • Peter Collingbourne's avatar
      Update ProcessMonitor::MonitorCallback signature. · 2c67b9a6
      Peter Collingbourne authored
      llvm-svn: 145021
      2c67b9a6
    • Peter Collingbourne's avatar
      Update PlatformLinux::Attach signature. · fb2b629d
      Peter Collingbourne authored
      llvm-svn: 145020
      fb2b629d
  6. Nov 19, 2011
    • Sean Callanan's avatar
      Pulled in a new revision of LLVM/Clang and added · 7f27d604
      Sean Callanan authored
      several patches.  These patches fix a problem
      where templated types were not being completed the
      first time they were used, and fix a variety of
      minor issues I discovered while fixing that problem.
      
      One of the previous local patches was resolved in
      the most recent Clang, so I removed it.  The others
      will be removed in due course.
      
      llvm-svn: 144984
      7f27d604
    • Greg Clayton's avatar
      Further performance improvements in the DWARF parser: · 3b608422
      Greg Clayton authored
      1 - the DIE collections no longer have the NULL tags which saves up to 25%
          of the memory on typical C++ code
      2 - faster parsing by not having to run the SetDIERelations() function anymore
          it is done when parsing the DWARF very efficiently.
      
      llvm-svn: 144983
      3b608422
    • Sean Callanan's avatar
      Ensure that the empty RecordDecl generated for · b5c79621
      Sean Callanan authored
      templates is properly complete (though still
      empty).
      
      llvm-svn: 144982
      b5c79621
    • Jim Ingham's avatar
      Handle stepping through a trampoline where the jump target is calculated a... · 9683ff12
      Jim Ingham authored
      Handle stepping through a trampoline where the jump target is calculated a runtime - and so doesn't match
      the name of the PLT entry.  This solution assumes a naming convention agreed upon by us and the system folks,
      and isn't general.  The general solution requires actually finding & calling the resolver function if it
      hasn't been called yet.  That's more tricky.
      
      llvm-svn: 144981
      9683ff12
  7. Nov 18, 2011
    • Greg Clayton's avatar
      Added optional calls to lldb_private::Process for getting memory region info · 46fb558d
      Greg Clayton authored
      from a process and hooked it up to the new packet that was recently added
      to our GDB remote executable named debugserver. Now Process has the following
      new calls:
      
      virtual Error
      Process::GetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info);
      
      virtual uint32_t
      GetLoadAddressPermissions (lldb::addr_t load_addr);
      
      Only the first one needs to be implemented by subclasses that can add this
      support.
      
      Cleaned up the way the new packet was implemented in debugserver to be more
      useful as an API inside debugserver. Also found an error where finding a region
      for an address actually will pick up the next region that follows the address
      in the query so we also need ot make sure that the address we requested the
      region for falls into the region that gets returned.
      
      llvm-svn: 144976
      46fb558d
    • Greg Clayton's avatar
      Looking at our memory usage with Instruments when debugging a large application · 7ba18027
      Greg Clayton authored
      we say that the vectors of DWARFDebugInfoEntry objects were the highest on the
      the list. 
      
      With these changes we cut our memory usage by 40%!!! I did this by reducing
      the size of the DWARFDebugInfoEntry from a previous:
      
      uint32_t offset
      uint32_t parent_idx
      uint32_t sibling_idx
      Abbrev * abbrev_ptr
      
      which was 20 bytes, but rounded up to 24 bytes due to alignment. Now we have:
      
      uint32_t offset
      uint32_t parent_idx
      uint32_t sibling_idx
      uint32_t abbr_idx:15,       // 32767 possible abbreviation codes
               has_children:1,    // 0 = no children, 1 = has children
               tag:16;            // DW_TAG_XXX value
      
      This gets us down to 16 bytes per DIE. I tested some VERY large DWARF files
      (900MB) and found there were only ~700 unique abbreviations, so 32767 should
      be enough for any sane compiler. If it isn't there are built in assertions
      that will fire off and tell us.
      
      llvm-svn: 144975
      7ba18027
Loading