Skip to content
  1. Nov 03, 2012
  2. Sep 18, 2012
  3. 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
  4. Aug 22, 2012
    • Greg Clayton's avatar
      Reimplemented the code that backed the "settings" in lldb. There were many... · 67cc0636
      Greg Clayton authored
      Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
      - no setting auto completion
      - very manual and error prone way of getting/setting variables
      - tons of code duplication
      - useless instance names for processes, threads
      
      Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".
      
      llvm-svn: 162366
      67cc0636
  5. May 09, 2012
  6. Sep 12, 2011
  7. Sep 11, 2011
  8. Jun 10, 2011
    • Greg Clayton's avatar
      Explicitly set the value to NULL when adding a string map entry. · 40df35ef
      Greg Clayton authored
      llvm-svn: 132823
      40df35ef
    • Greg Clayton's avatar
      I modified the StringMap that was being used to unique our debugger C strings · c3ae1cef
      Greg Clayton authored
      to have the value for the map be a "const char *" instead of an unused uint32_t.
      This allows us to store the uniqued mangled/demangled counterpart in this map
      for mangled names. This also speeds up the mangled/demangled counterpart lookup
      that used to be maintained in a STL map by having direct access to the data.
      If we eventually need to associate other strings to strings to more data, we
      can make the value of the StringMap have a more complex value.
      
      Added the start of a history source and history event class. It isn't being
      used by anything yet, but might be shortly.
      
      llvm-svn: 132813
      c3ae1cef
  9. Oct 16, 2010
    • Greg Clayton's avatar
      Made many ConstString functions inlined in the header file. · 7b462cc1
      Greg Clayton authored
      Changed all of our synthesized "___clang" functions, types and variables
      that get used in expressions over to have a prefix of "$_lldb". Now when we
      do name lookups we can easily switch off of the first '$' character to know
      if we should look through only our internal (when first char is '$') stuff,
      or when we should look through program variables, functions and types.
      
      Converted all of the clang expression code over to using "const ConstString&" 
      values for names instead of "const char *" since there were many places that
      were converting the "const char *" names into ConstString names and them
      throwing them away. We now avoid making a lot of ConstString conversions and
      benefit from the quick comparisons in a few extra spots.
      
      Converted a lot of code from LLVM coding conventions into LLDB coding 
      conventions.
      
      llvm-svn: 116634
      7b462cc1
  10. Sep 04, 2010
  11. Jul 09, 2010
  12. Jun 22, 2010
  13. Jun 08, 2010
Loading