Skip to content
  1. Feb 09, 2012
  2. Feb 08, 2012
  3. Jan 29, 2012
    • Greg Clayton's avatar
      Switching back to using std::tr1::shared_ptr. We originally switched away · e1cd1be6
      Greg Clayton authored
      due to RTTI worries since llvm and clang don't use RTTI, but I was able to 
      switch back with no issues as far as I can tell. Once the RTTI issue wasn't
      an issue, we were looking for a way to properly track weak pointers to objects
      to solve some of the threading issues we have been running into which naturally
      led us back to std::tr1::weak_ptr. We also wanted the ability to make a shared 
      pointer from just a pointer, which is also easily solved using the 
      std::tr1::enable_shared_from_this class. 
      
      The main reason for this move back is so we can start properly having weak
      references to objects. Currently a lldb_private::Thread class has a refrence
      to its parent lldb_private::Process. This doesn't work well when we now hand
      out a SBThread object that contains a shared pointer to a lldb_private::Thread
      as this SBThread can be held onto by external clients and if they end up
      using one of these objects we can easily crash.
      
      So the next task is to start adopting std::tr1::weak_ptr where ever it makes
      sense which we can do with lldb_private::Debugger, lldb_private::Target,
      lldb_private::Process, lldb_private::Thread, lldb_private::StackFrame, and
      many more objects now that they are no longer using intrusive ref counted
      pointer objects (you can't do std::tr1::weak_ptr functionality with intrusive
      pointers).
      
      llvm-svn: 149207
      e1cd1be6
  4. Jan 26, 2012
  5. 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
  6. Jun 15, 2011
  7. May 14, 2011
  8. Mar 19, 2011
    • Greg Clayton's avatar
      Added more platform support. There are now some new commands: · ded470d3
      Greg Clayton authored
      platform status -- gets status information for the selected platform
      platform create <platform-name> -- creates a new instance of a remote platform
      platform list -- list all available platforms
      platform select -- select a platform instance as the current platform (not working yet)
      
      When using "platform create" it will create a remote platform and make it the
      selected platform. For instances for iPhone OS debugging on Mac OS X one can 
      do:
      
      (lldb) platform create remote-ios --sdk-version=4.0
      Remote platform: iOS platform
      SDK version: 4.0
      SDK path: "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0"
      Not connected to a remote device.
      (lldb) file ~/Documents/a.out
      Current executable set to '~/Documents/a.out' (armv6).
      (lldb) image list
      [  0] /Volumes/work/gclayton/Documents/devb/attach/a.out
      [  1] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/dyld
      [  2] /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0/Symbols/usr/lib/libSystem.B.dylib
      
      
      Note that this is all happening prior to running _or_ connecting to a remote
      platform. Once connected to a remote platform the OS version might change which
      means we will need to update our dependecies. Also once we run, we will need
      to match up the actualy binaries with the actualy UUID's to files in the
      SDK, or download and cache them locally.
      
      This is just the start of the remote platforms, but this modification is the
      first iteration in getting the platforms really doing something.
      
      llvm-svn: 127934
      ded470d3
  9. Feb 05, 2011
  10. Dec 12, 2010
    • Greg Clayton's avatar
      Fixed an issue where the macosx dynamic loader, on the first shared library... · 7d07a45f
      Greg Clayton authored
      Fixed an issue where the macosx dynamic loader, on the first shared library loaded notification, wasn't properly removing shared libraries from the target that didn't get loaded. This usually happens when a different shared library is loaded in place of another due to DYLD_LIBRARY_PATH or DYLD_FRAMEWORK_PATH environment variables. We now properly remove any images that didn't make it into the executable.
      
      llvm-svn: 121641
      7d07a45f
  11. Dec 07, 2010
    • Greg Clayton's avatar
      When shared libraries are unloaded, they are now removed from the target · a4d78300
      Greg Clayton authored
      ModuleList so they don't show up in the images. Breakpoint locations that are
      in shared libraries that get unloaded will persist though so that if you
      have plug-ins that load/unload and you have a breakpoint set on functions
      in the plug-ins, the hit counts will persist between loads/unloads.
      
      llvm-svn: 121069
      a4d78300
  12. Nov 06, 2010
    • Greg Clayton's avatar
      Modified all logging calls to hand out shared pointers to make sure we · 2d4edfbc
      Greg Clayton authored
      don't crash if we disable logging when some code already has a copy of the
      logger. Prior to this fix, logs were handed out as pointers and if they were
      held onto while a log got disabled, then it could cause a crash. Now all logs
      are handed out as shared pointers so this problem shouldn't happen anymore.
      We are also using our new shared pointers that put the shared pointer count
      and the object into the same allocation for a tad better performance.
      
      llvm-svn: 118319
      2d4edfbc
  13. Oct 28, 2010
    • Johnny Chen's avatar
      Check in an initial implementation of the "breakpoint clear" command, whose purpose is clear · b7234e40
      Johnny Chen authored
      the breakpoint associated with the (filename, line_number) combo when an arrow is pointing to
      a source position using Emacs Grand Unified Debugger library to interact with lldb.
      
      The current implmentation is insufficient in that it only asks the breakpoint whether it is
      associated with a breakpoint resolver with FileLine type and whether it matches the (filename, line_number)
      combo.  There are other breakpoint resolver types whose breakpoint locations can potentially
      match the (filename, line_number) combo.
      
      The BreakpointResolver, BreakpointResolverName, BreakpointResolverAddress, and BreakpointResolverFileLine
      classes have extra static classof methods to support LLVM style type inquiry through isa, cast, and dyn_cast.
      
      The Breakpoint class has an API method bool GetMatchingFileLine(...) which is invoked from CommandObjectBreak.cpp
      to implement the "breakpoint clear" command.
      
      llvm-svn: 117562
      b7234e40
  14. Oct 20, 2010
  15. Oct 15, 2010
    • Jim Ingham's avatar
      Added support for breakpoint conditions. I also had to separate the "run the... · 36f3b369
      Jim Ingham authored
      Added support for breakpoint conditions.  I also had to separate the "run the expression" part of ClangFunction::Execute from the "Gather the expression result" so that in the case of the Breakpoint condition I can move the condition evaluation into the normal thread plan processing.
      
      Also added support for remembering the "last set breakpoint" so that "break modify" will act on the last set breakpoint.
      
      llvm-svn: 116542
      36f3b369
  16. Jul 24, 2010
  17. Jul 09, 2010
  18. Jun 28, 2010
    • Greg Clayton's avatar
      Added function name types to allow us to set breakpoints by name more · 0c5cd90d
      Greg Clayton authored
      intelligently. The four name types we currently have are:
      
      eFunctionNameTypeFull       = (1 << 1), // The function name.
                                              // For C this is the same as just the name of the function
                                              // For C++ this is the demangled version of the mangled name.
                                              // For ObjC this is the full function signature with the + or
                                              // - and the square brackets and the class and selector
      eFunctionNameTypeBase       = (1 << 2), // The function name only, no namespaces or arguments and no class 
                                              // methods or selectors will be searched.
      eFunctionNameTypeMethod     = (1 << 3), // Find function by method name (C++) with no namespace or arguments
      eFunctionNameTypeSelector   = (1 << 4)  // Find function by selector name (ObjC) names
      
      
      this allows much more flexibility when setting breakoints:
      
      (lldb) breakpoint set --name main --basename
      (lldb) breakpoint set --name main --fullname
      (lldb) breakpoint set --name main --method
      (lldb) breakpoint set --name main --selector
      
      The default:
      
      (lldb) breakpoint set --name main
      
      will inspect the name "main" and look for any parens, or if the name starts
      with "-[" or "+[" and if any are found then a full name search will happen.
      Else a basename search will be the default.
      
      Fixed some command option structures so not all options are required when they
      shouldn't be.
      
      Cleaned up the breakpoint output summary.
      
      Made the "image lookup --address <addr>" output much more verbose so it shows
      all the important symbol context results. Added a GetDescription method to 
      many of the SymbolContext objects for the more verbose output.
      
      llvm-svn: 107075
      0c5cd90d
  19. Jun 18, 2010
    • Jim Ingham's avatar
      Change the Breakpoint & BreakpointLocation GetDescription methods so they call... · 0136309f
      Jim Ingham authored
      Change the Breakpoint & BreakpointLocation GetDescription methods so they call the BreakpointOptions::GetDescription rather
      than picking bits out of the breakpoint options.  Added BreakpointOptions::GetDescription to do this job.  Some more mucking
      around to keep the breakpoint listing from getting too verbose.
      
      llvm-svn: 106262
      0136309f
  20. Jun 16, 2010
    • Jim Ingham's avatar
      Add a "thread specification" class that specifies thread specific breakpoints... · 1b54c88c
      Jim Ingham authored
      Add a "thread specification" class that specifies thread specific breakpoints by name, index, queue or TID.  
      Push this through all the breakpoint management code.  Allow this to be set when the breakpoint is created.
      Fix the Process classes so that a breakpoint hit that is not for a particular thread is not reported as a 
      breakpoint hit event for that thread.
      Added a "breakpoint configure" command to allow you to reset any of the thread 
      specific options (or the ignore count.)
      
      llvm-svn: 106078
      1b54c88c
  21. Jun 08, 2010
Loading