Skip to content
  1. Jul 15, 2011
    • Enrico Granata's avatar
      Python summary strings: · f2bbf717
      Enrico Granata authored
       - you can use a Python script to write a summary string for data-types, in one of
         three ways:
          -P option and typing the script a line at a time
          -s option and passing a one-line Python script
          -F option and passing the name of a Python function
         these options all work for the "type summary add" command
         your Python code (if provided through -P or -s) is wrapped in a function
         that accepts two parameters: valobj (a ValueObject) and dict (an LLDB
         internal dictionary object). if you use -F and give a function name,
         you're expected to define the function on your own and with the right
         prototype. your function, however defined, must return a Python string
       - test case for the Python summary feature
       - a few quirks:
        Python summaries cannot have names, and cannot use regex as type names
        both issues will be fixed ASAP
      major redesign of type summary code:
       - type summary working with strings and type summary working with Python code
         are two classes, with a common base class SummaryFormat
       - SummaryFormat classes now are able to actively format objects rather than
         just aggregating data
       - cleaner code to print descriptions for summaries
      the public API now exports a method to easily navigate a ValueObject hierarchy
      New InputReaderEZ and PriorityPointerPair classes
      Several minor fixes and improvements
      
      llvm-svn: 135238
      f2bbf717
  2. May 30, 2011
  3. Mar 08, 2011
    • Greg Clayton's avatar
      LLDB now has "Platform" plug-ins. Platform plug-ins are plug-ins that provide · e996fd30
      Greg Clayton authored
      an interface to a local or remote debugging platform. By default each host OS
      that supports LLDB should be registering a "default" platform that will be
      used unless a new platform is selected. Platforms are responsible for things
      such as:
      - getting process information by name or by processs ID
      - finding platform files. This is useful for remote debugging where there is 
        an SDK with files that might already or need to be cached for debug access.
      - getting a list of platform supported architectures in the exact order they
        should be selected. This helps the native x86 platform on MacOSX select the
        correct x86_64/i386 slice from universal binaries.
      - Connect to remote platforms for remote debugging
      - Resolving an executable including finding an executable inside platform
        specific bundles (macosx uses .app bundles that contain files) and also
        selecting the appropriate slice of universal files for a given platform.
      
      So by default there is always a local platform, but remote platforms can be
      connected to. I will soon be adding a new "platform" command that will support
      the following commands:
      (lldb) platform connect --name machine1 macosx connect://host:port
      Connected to "machine1" platform.
      (lldb) platform disconnect macosx
      
      This allows LLDB to be well setup to do remote debugging and also once 
      connected process listing and finding for things like:
      (lldb) process attach --name x<TAB>
      
      The currently selected platform plug-in can now auto complete any available
      processes that start with "x". The responsibilities for the platform plug-in
      will soon grow and expand.
      
      llvm-svn: 127286
      e996fd30
  4. Feb 08, 2011
  5. Feb 05, 2011
  6. Jan 14, 2011
    • Greg Clayton's avatar
      Fixed an error in the type map for "char **" that was a bad memory smasher. · ca512b39
      Greg Clayton authored
      Anytime we had a valid python list that was trying to go from Python down into
      our C++ API, it was allocating too little memory and it ended up smashing
      whatever was next to the allocated memory.
      
      Added typemap conversions for "void *, size_t" so we can get 
      SBProcess::ReadMemory() working. Also added a typemap for "const void *, size_t"
      so we can get SBProcess::WriteMemory() to work.
      
      Fixed an issue in the DWARF parser where we weren't correctly calculating the
      DeclContext for all types and classes. We now should be a lot more accurate.
      Fixes include: enums should now be setting their parent decl context correctly.
      We saw a lot of examples where enums in classes were not being properly
      namespace scoped. Also, classes within classes now get properly scoped.
      
      Fixed the objective C runtime pointer checkers to let "nil" pointers through
      since these are accepted by compiled code. We also now don't call "abort()"
      when a pointer doesn't validate correctly since this was wreaking havoc on
      the process due to the way abort() works. We now just dereference memory
      which should give us an exception from which we can easily and reliably 
      recover.
      
      llvm-svn: 123428
      ca512b39
  7. Jul 09, 2010
  8. Jun 21, 2010
  9. Jun 11, 2010
  10. Jun 08, 2010
Loading