Skip to content
  1. 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
    • Jason Molenda's avatar
      Instead of using re.split and requiring two spaces between the "regname: regvalue" pairs, · e5ad3859
      Jason Molenda authored
      use re.findall and specify the regexp of regname: regvalue that we're interested in.
      <rdar://problem/12188752> 
      
      llvm-svn: 162806
      e5ad3859
    • Johnny Chen's avatar
      rdar://problem/11374963 · 1083b0de
      Johnny Chen authored
      Fix a subtle ArchSpec::cores_match() logic issue which prevents the add-dsym command
      to add a debug symbol file to one of the target's current modules.
      
      llvm-svn: 162802
      1083b0de
  2. Aug 28, 2012
  3. Aug 27, 2012
  4. Aug 25, 2012
    • Filipe Cabecinhas's avatar
      Added SBDebugger's log callbacks to Python-land · c5041918
      Filipe Cabecinhas authored
      - Tweaked a parameter name in SBDebugger.h so my typemap will catch it;
      - Added a SBDebugger.Create(bool, callback, baton) to the swig interface;
      - Added SBDebugger.SetLoggingCallback to the swig interface;
      - Added a callback utility function for log callbacks;
      - Guard against Py_None on both callback utility functions;
      
      - Added a FIXME to the SBDebugger API test;
      - Added a __del__() stub for SBDebugger.
      
      We need to be able to get both the log callback and baton from an
      SBDebugger if we want to protect against memory leaks (or make the user
      responsible for holding another reference to the callback).
      Additionally, it's impossible to revert from a callback-backed log
      mechanism to a file-backed log mechanism.
      
      llvm-svn: 162633
      c5041918
    • Jim Ingham's avatar
      Add the "expr" command to the gdb command equivalents. · b520a104
      Jim Ingham authored
      llvm-svn: 162617
      b520a104
  5. Aug 24, 2012
  6. Aug 23, 2012
  7. Aug 22, 2012
    • Jim Ingham's avatar
      Rework how the API mutex is acquired when filling out an ExecutionContext from... · 4fc6cb9c
      Jim Ingham authored
      Rework how the API mutex is acquired when filling out an ExecutionContext from an ExecutionContextRef,
      particularly in the SBThread & SBFrame interfaces.  Instead of filling the whole context & then getting
      the API mutex, we now get only the target, acquire the API mutex from it, then fill out the rest of the
      context.  This removes a race condition where you get a ThreadSP, then wait on the API mutex while another
      command Destroy's the Thread you've just gotten.
      Also fixed the ExecutionContextRef::Get*SP calls so they don't return invalid objects.
      Also fixed the ExecutionContext::Has*Scope calls so they don't claim to have a scope if the object representing
      that scope has been destroyed.
      Also fixed a think-o in Thread::IsValid which was causing it to return the opposite of the desired value.
      
      <rdar://problem/11995490>
      
      llvm-svn: 162401
      4fc6cb9c
Loading