Skip to content
  1. Mar 03, 2012
    • Enrico Granata's avatar
      added a new formatter for CF(Mutable)BitVector · 385ad4e4
      Enrico Granata authored
      fixed a few potential NULL-pointer derefs in ValueObject
      we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits
      added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain
      
      llvm-svn: 151962
      385ad4e4
  2. Mar 02, 2012
  3. Mar 01, 2012
    • Enrico Granata's avatar
      this fixes unicode strings handling in 32-bit mode on Lion · 74ec8f9c
      Enrico Granata authored
      llvm-svn: 151831
      74ec8f9c
    • Enrico Granata's avatar
      (a) adding an introspection formatter for NS(Mutable)IndexSet · 896cd1d3
      Enrico Granata authored
      (b) fixes and improvements to the formatters for NSDate and NSString
      (c) adding an introspection formatter for NSCountedSet
      (d) making the Objective-C formatters test cases pass on both 64 and 32 bit
          one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass
      
      llvm-svn: 151826
      896cd1d3
    • Jim Ingham's avatar
      Add an option to sort by packet count (rather than time). Also print the count, · d95752f2
      Jim Ingham authored
      and to print the total count & time in the header.
      
      llvm-svn: 151823
      d95752f2
    • Enrico Granata's avatar
      1) solving a bug where, after Jim's fixes to stack frames, synthetic children... · 0c489f58
      Enrico Granata authored
      1) solving a bug where, after Jim's fixes to stack frames, synthetic children were not recalculated when necessary, causing them to get out of sync with live data
      2) providing an updated list of tagged pointers values for the objc_runtime module - hopefully this one is final
      3) changing ValueObject::DumpValueObject to use an Options class instead of providing a bulky list of parameters to pass around
         this change had been laid out previously, but some clients of DumpValueObject() were still using the old prototype and some arguments
         were treated in a special way and passed in directly instead of through the Options class
      4) providing new GetSummaryAsCString() and GetValueAsCString() calls in ValueObject that are passed a formatter object and a destination string
         and fill the string by formatting themselves using the formatter argument instead of the default for the current ValueObject
      5) removing the option to have formats and summaries stick to a variable for the current stoppoint
         after some debate, we are going with non-sticky: if you say frame variable --format hex foo, the hex format will only be applied to the current command execution and not stick when redisplaying foo
         the other option would be full stickiness, which means that foo would be formatted as hex for its whole lifetime
         we are open to suggestions on what feels "natural" in this regard
      
      llvm-svn: 151801
      0c489f58
  4. Feb 29, 2012
    • Enrico Granata's avatar
    • Enrico Granata's avatar
      This commit: · 7bc0ec3a
      Enrico Granata authored
       a) adds a Python summary provider for NSDate
       b) changes the initialization for ScriptInterpreter so that we are not passing a bulk of Python-specific function pointers around
       c) provides a new ScriptInterpreterObject class that allows for ref-count safe wrapping of scripting objects on the C++ side
       d) contains much needed performance improvements:
          1) the pointer to the Python function generating a scripted summary is now cached instead of looked up every time
          2) redundant memory reads in the Python ObjC runtime wrapper are eliminated
          3) summaries now use the m_summary_str in ValueObject to store their data instead of passing around ( == copying) an std::string object
       e) contains other minor fixes, such as adding descriptive error messages for some cases of summary generation failure
      
      llvm-svn: 151703
      7bc0ec3a
  5. Feb 24, 2012
    • Enrico Granata's avatar
    • Greg Clayton's avatar
      <rdar://problem/10103468> · e72dfb32
      Greg Clayton authored
      I started work on being able to add symbol files after a debug session
      had started with a new "target symfile add" command and quickly ran into
      problems with stale Address objects in breakpoint locations that had 
      lldb_private::Section pointers into modules that had been removed or 
      replaced. This also let to grabbing stale modules from those sections. 
      So I needed to thread harded the Address, Section and related objects.
      
      To do this I modified the ModuleChild class to now require a ModuleSP
      on initialization so that a weak reference can created. I also changed
      all places that were handing out "Section *" to have them hand out SectionSP.
      All ObjectFile, SymbolFile and SymbolVendors were inheriting from ModuleChild
      so all of the find plug-in, static creation function and constructors now
      require ModuleSP references instead of Module *. 
      
      Address objects now have weak references to their sections which can
      safely go stale when a module gets destructed. 
      
      This checkin doesn't complete the "target symfile add" command, but it
      does get us a lot clioser to being able to do such things without a high
      risk of crashing or memory corruption.
      
      llvm-svn: 151336
      e72dfb32
    • Enrico Granata's avatar
      fixing a syntax error with objc_runtime.py · b8cbe9cb
      Enrico Granata authored
      llvm-svn: 151304
      b8cbe9cb
    • Enrico Granata's avatar
      This patch provides a set of formatters for most of the commonly used Cocoa classes. · eb4a4798
      Enrico Granata authored
      The formatter for NSString is an improved version of the one previously shipped as an example, the others are new in design and implementation.
      A more robust and OO-compliant Objective-C runtime wrapper is provided for runtime versions 1 and 2 on 32 and 64 bit.
      The formatters are contained in a category named "AppKit", which is not enabled at startup.
      
      llvm-svn: 151300
      eb4a4798
  6. Feb 22, 2012
  7. Feb 21, 2012
  8. Feb 20, 2012
    • Johnny Chen's avatar
      Fix examples/lookup/main.cpp. · 216d93a6
      Johnny Chen authored
      Patch to fix the main.cpp compile error submitted by Dmitry Vyukov <dvyukov@google.com>.
      Also add a Makefile, plus some modification to main.cpp.
      
      llvm-svn: 150990
      216d93a6
  9. Feb 08, 2012
  10. Feb 03, 2012
  11. Jan 31, 2012
  12. Jan 30, 2012
    • Greg Clayton's avatar
      Added a new lldb.SBValue helper module that has two classes: · 0a94b661
      Greg Clayton authored
      sbvalue.value (<SBValue>)
      sbvalue.variable (<SBValue>)
      
      Initialize both with a lldb.SBValue
      
      sbvalue.value() make all sorts of convenience properties. Type "help(sbvalue.value)" 
      in the embedded python interpreter to see what is available.
      
      sbvalue.variable() wraps a lldb.SBValue and allows you to play with your variable just
      as you would expect:
      
      pt = sbvalue.variable (lldb.frame.FindVariable("pt"))
      
      print pt.x
      print py.y
      
      argv = sbvalue.variable (lldb.frame.FindVariable("argv"))
      print argv[0]
      
      Member access and array acccess is all taken care of!
      
      llvm-svn: 149260
      0a94b661
  13. Jan 26, 2012
    • Greg Clayton's avatar
      Added a 'gdbremote' python module that adds two commands: start_gdb_log and end_gdb_log. · e2841639
      Greg Clayton authored
      When this is imported into your lldb using the "command script import /path/to/gdbremote.py"
      these new commands are available within LLDB. 'start_gdb_log' will enable logging with 
      timestamps for GDB remote packets, and 'stop_gdb_log' will then dump the details and
      also a lot of packet timing data. This allows us to accurately track what packets are
      taking up the most time when debugging (when using the ProcessGDBRemote debugging plug-in).
      
      Also udpated the comments at the top of the cmdtemplate.py to show how to correctly import
      the module from within LLDB.
      
      llvm-svn: 149030
      e2841639
  14. Jan 24, 2012
  15. Jan 22, 2012
  16. Jan 21, 2012
  17. Jan 20, 2012
    • Sean Callanan's avatar
      Fixed a global reference that should have been · 88685f28
      Sean Callanan authored
      a reference to a class variable.
      
      llvm-svn: 148562
      88685f28
    • Greg Clayton's avatar
      Make the script work again from the command line as long as the PYTHONPATH · 42a6eb71
      Greg Clayton authored
      environment variable it set to include a path to lldb.py.
      
      Also fixed the case where the executable can't be located and doesn't match
      what is installed on the current system. It will still symbolicate the other
      frames, and will just show what was originally in the crash log file.
      
      Also removed the --crash-log option so the arguments to the "crashlog"
      command are one or more paths to crash logs.
      
      Fixed the script to "auto-install" itself when loaded from the embedded
      script interpreter. Now you only need to import the module and the
      command is ready for use.
      
      llvm-svn: 148561
      42a6eb71
    • Greg Clayton's avatar
      More fixed to verify if a file in the crash log is installed in the current · 3d8d3db3
      Greg Clayton authored
      system and also deal with dsymForUUID being available on the network, locally,
      and not at all.
      
      llvm-svn: 148534
      3d8d3db3
    • Greg Clayton's avatar
      Improved the regular expressions to handle "+" characters being at the front · a32bfbee
      Greg Clayton authored
      of the identifier name in the binary images section. Improved the regular
      expression for the frames.
      
      Added a new file "crashlog.lldb" which can be sourced with "command source"
      that will import the module and set itself up to be used as a command.
      
      llvm-svn: 148529
      a32bfbee
    • Greg Clayton's avatar
      Modified the symbolicate-crash.py so it can be imported into python as a · aa9d02b1
      Greg Clayton authored
      module (you can't import a module with a '-' in it) and also added a
      Symbolcate(...) top level function so it can be imported and used as an
      LLDB command.
      
      Then you can import the module and map a "crashlog" command (for darwin
      use only currently) to the python function "crashlog.Symbolicate":
      
      (lldb) script import crashlog
      (lldb) command script add -f crashlog.Symbolicate crashlog
      
      Then use it to symbolicate:
      
      (lldb) crashlog --crash-log /path/to/foo.crash
      
      The crash log will then get symbolicated and inline frames will be added to
      the crash log and the frames will be displayed. The crash log currently will
      only try and fetch and setup the target images requires in order to do the
      symbolication.
      
      This will need to be iterated upon, but it is getting close to being useful
      so I am going to check this in.
      
      llvm-svn: 148528
      aa9d02b1
    • Greg Clayton's avatar
      Add some usage documentation to the top of the source file. · 415c72cb
      Greg Clayton authored
      llvm-svn: 148527
      415c72cb
    • Greg Clayton's avatar
      Added a new tool that can be loaded into a user space darwin application and allows you · 5d343228
      Greg Clayton authored
      to find data on the heap. To use this, make the project and then when stopped in your
      lldb debug session:
      
      (lldb) process load /path/to/libheap.dylib
      (lldb) find_pointer_in_heap (0x112233000000)
      
      This will grep everything in all active allocation blocks and print and malloc blocks that contain the pointer 0x112233000000.
      
      This can also work for c strings:
      
      (lldb) find_cstring_in_heap ("hello")
      
      llvm-svn: 148523
      5d343228
  18. Jan 16, 2012
  19. Jan 14, 2012
  20. Jan 10, 2012
Loading