Skip to content
  1. Nov 21, 2011
  2. Nov 20, 2011
  3. Nov 19, 2011
  4. Nov 18, 2011
    • Abramo Bagnara's avatar
      Fixed implicit instantiations source range. · 12dcbf3e
      Abramo Bagnara authored
      llvm-svn: 144977
      12dcbf3e
    • 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