Skip to content
  1. Jul 15, 2011
  2. Jul 12, 2011
    • Jim Ingham's avatar
      Added "command history" command to dump the command history. · a5a97ebe
      Jim Ingham authored
      Also made:
      (lldb) !<NUM>
      (lldb) !-<NUM>
      (lldb) !!
      
      work with the history.  For added benefit:
      
      (lldb) !<NUM><TAB>
      
      will insert the command at position <NUM> in the history into the command line to be edited.
      
      This is only partial, I still need to sync up editline's history list with the one kept by the interpreter.
      
      llvm-svn: 134955
      a5a97ebe
    • Enrico Granata's avatar
      named summaries: · f9fa6ee5
      Enrico Granata authored
       - a new --name option for "type summary add" lets you give a name to a summary
       - a new --summary option for "frame variable" lets you bind a named summary to one or more variables
      ${var%s} now works for printing the value of 0-terminated CStrings
      type format test case now tests for cascading
       - this is disabled on GCC because GCC may end up stripping typedef chains, basically breaking cascading
      new design for the FormatNavigator class
      new template class CleanUp2 meant to support cleanup routines with 1 additional parameter beyond resource handle
      
      llvm-svn: 134943
      f9fa6ee5
  3. Jul 09, 2011
  4. Jul 08, 2011
  5. Jul 07, 2011
    • Enrico Granata's avatar
    • Greg Clayton's avatar
      Centralize the variable display prefs into a new option · 715c2365
      Greg Clayton authored
      group class: OptionGroupVariable. It gets initialized with
      a boolean that indicates if the frame specific options are
      included so that this can be used in both the "frame variable"
      and "target variable" commands.
      
      Removed the global functionality from the "frame variable" 
      command. Users should switch to using the "target variable"
      command.
      
      llvm-svn: 134594
      715c2365
    • Greg Clayton's avatar
      Added "target variable" command that allows introspection of global · 644247c1
      Greg Clayton authored
      variables prior to running your binary. Zero filled sections now get
      section data correctly filled with zeroes when Target::ReadMemory
      reads from the object file section data.
      
      Added new option groups and option values for file lists. I still need
      to hook up all of the options to "target variable" to allow more complete
      introspection by file and shlib.
      
      Added the ability for ValueObjectVariable objects to be created with
      only the target as the execution context. This allows them to be read
      from the object files through Target::ReadMemory(...). 
      
      Added a "virtual Module * GetModule()" function to the ValueObject
      class. By default it will look to the parent variable object and
      return its module. The module is needed when we have global variables
      that have file addresses (virtual addresses that are specific to
      module object files) and in turn allows global variables to be displayed
      prior to running.
      
      Removed all of the unused proxy object support that bit rotted in 
      lldb_private::Value.
      
      Replaced a lot of places that used "FileSpec::Compare (lhs, rhs) == 0" code
      with the more efficient "FileSpec::Equal (lhs, rhs)".
      
      Improved logging in GDB remote plug-in.
      
      llvm-svn: 134579
      644247c1
    • Enrico Granata's avatar
      new detailed descriptions for type summary add and type format add · 82a7d983
      Enrico Granata authored
      some changes to the help system code for better display of long help text
      -p and -r flags now also work for type format add
      
      llvm-svn: 134574
      82a7d983
  6. Jul 02, 2011
    • Greg Clayton's avatar
      Cleanup errors that come out of commands and make sure they all have newlines · 197bacff
      Greg Clayton authored
      _only_ in the resulting stream, not in the error objects (lldb_private::Error).
      lldb_private::Error objects should always just have an error string with no 
      terminating newline characters or periods.
      
      Fixed an issue with GDB remote packet detection that could end up deadlocking
      if a full packet wasn't received in one chunk. Also modified the packet 
      checking function to properly toss one or more bytes when it detects bad
      data. 
      
      llvm-svn: 134357
      197bacff
    • Enrico Granata's avatar
      several improvements to "type summary": · 0a3958e0
      Enrico Granata authored
       - type names can now be regular expressions (exact matching is done first, and is faster)
       - integral (and floating) types can be printed as bitfields, i.e. ${var[low-high]} will extract bits low thru high of the value and print them
       - array subscripts are supported, both for arrays and for pointers. the syntax is ${*var[low-high]}, or ${*var[]} to print the whole array (the latter only works for statically sized arrays)
       - summary is now printed by default when a summary string references a variable. if that variable's type has no summary, value is printed instead. to force value, you can use %V as a format specifier
       - basic support for ObjectiveC:
        - ObjectiveC inheritance chains are now walked through
        - %@ can be specified as a summary format, to print the ObjectiveC runtime description for an object
       - some bug fixes
      
      llvm-svn: 134293
      0a3958e0
  7. Jun 24, 2011
  8. Jun 23, 2011
    • Greg Clayton's avatar
      Centralized all of the format to c-string and to format character code inside · bb7f31fa
      Greg Clayton authored
      the FormatManager class. Modified the format arguments in any commands to be
      able to use a single character format, or a full format name, or a partial 
      format name if no full format names match.
      
      Modified any code that was displaying formats to use the new FormatManager
      calls so that our help text and errors never get out of date.
      
      Modified the display of the "type format list" command to be a bit more
      human readable by showing the format as a format string rather than the single
      character format char.
      
      llvm-svn: 133765
      bb7f31fa
    • Peter Collingbourne's avatar
      Fix header paths · 08405b69
      Peter Collingbourne authored
      llvm-svn: 133755
      08405b69
    • Charles Davis's avatar
      Fix typo spotted by Elias Pipping. · 40249155
      Charles Davis authored
      llvm-svn: 133744
      40249155
    • Greg Clayton's avatar
      Committing type format code for Enrico Granata. · 4a33d318
      Greg Clayton authored
      This commit adds a new top level command named "type". Currently this command
      implements three commands:
      
      type format add <format> <typename1> [<typename2> ...]
      type format delete <typename1> [<typename2> ...]
      type format list [<typename1> [<typename2>] ...]
      
      This allows you to specify the default format that will be used to display
      types when you use "frame variable" or "expression", or the SBValue classes.
      
      Examples:
      
      // Format uint*_t as hex
      type format add x uint16_t uint32_t uint64_t
      
      // Format intptr_t as a pointer
      type format add p intptr_t
      
      The format characters are the same as "printf" for the most part with many
      additions. These format character specifiers are also used in many other 
      commands ("frame variable" for one). The current list of format characters
      include:
      
      a - char buffer
      b - binary
      B - boolean
      c - char
      C - printable char
      d - signed decimal
      e - float
      f - float
      g - float
      i - signed decimal
      I - complex integer
      o - octal
      O - OSType
      p - pointer
      s - c-string
      u - unsigned decimal
      x - hex
      X - complex float
      y - bytes
      Y - bytes with ASCII
      
      llvm-svn: 133728
      4a33d318
    • Charles Davis's avatar
      When installing the Python modules: · b1858901
      Charles Davis authored
      - Respect DESTDIR.
      - Use the realpath function on the path before prepending DESTDIR.
      - Don't depend on liblldb.{so,dylib} being installed already.
      - Don't put the DESTDIR into the _lldb.so symlink.
      
      Patch by Elias Pipping!
      
      llvm-svn: 133689
      b1858901
    • Peter Collingbourne's avatar
      Remove -MT options from SWIG invocation · 09aff6bc
      Peter Collingbourne authored
      SWIG on Darwin does not support -MT, and it only means that we lose
      the .d target, which doesn't seem to be used or needed.
      
      Pointed out by Charles Davis.
      
      llvm-svn: 133660
      09aff6bc
  9. Jun 20, 2011
  10. Jun 18, 2011
    • Greg Clayton's avatar
      Added a new format for displaying an array of characters: eFormatCharArray · 4e4294bd
      Greg Clayton authored
      This us useful because sometomes you have to show a single character as: 'a'
      (using eFormatChar) and other times you might have an array of single 
      charcters for display as: 'a' 'b' 'c', and other times you might want to 
      show the contents of buffer of characters that can contain non printable
      chars: "\0\x22\n123". 
      
      This also fixes an issue that currently happens when you have a single character
      C string (const char *a = "a"; or char b[1] = { 'b' };) that was being output
      as "'a'" incorrectly due to the way the eFormatChar format output worked.
      
      llvm-svn: 133316
      4e4294bd
  11. Jun 17, 2011
    • Greg Clayton's avatar
      Added the notion of an system root for SDKs. This is a directory where all · f3dd93c8
      Greg Clayton authored
      libraries and headers exist. This can be specified using the platform select
      function:
      
      platform select --sysroot /Volumes/remote-root remote-macosx
      
      Each platform subclass is free to interpret the sysroot as needed.
      
      Expose the new SDK root directory through the SBDebugger class. 
      
      Fixed an issue with the GDB remote protocol where unimplemented packets were
      not being handled correctly.
      
      llvm-svn: 133231
      f3dd93c8
  12. Jun 16, 2011
    • Caroline Tice's avatar
      · d61c10bc
      Caroline Tice authored
      Add 'batch_mode' to CommandInterpreter.  Modify InputReaders to
      not write output (prompts, instructions,etc.) if the CommandInterpreter
      is in batch_mode.
      
      Also, finish updating InputReaders to write to the asynchronous stream,
      rather than using the Debugger's output file directly.
      
      llvm-svn: 133162
      d61c10bc
  13. Jun 14, 2011
    • Caroline Tice's avatar
      · c1338e8d
      Caroline Tice authored
      Add error message; clean up comment.
      
      llvm-svn: 132997
      c1338e8d
  14. Jun 13, 2011
    • Caroline Tice's avatar
      · 1f499bc0
      Caroline Tice authored
      Cleaning up the Python script interpreter:  Use the
      embedded_interpreter.py file rather than keeping it
      all in a string and compiling the string (easier to maintain,
      easier to read, remove redundancy).
      
      llvm-svn: 132935
      1f499bc0
  15. Jun 03, 2011
    • Caroline Tice's avatar
      · c928f59c
      Caroline Tice authored
      Use Py_InitializeEx(0) instead of Py_Initialize,
      to prevent Python from installing its own signal 
      handlers.
      
      llvm-svn: 132492
      c928f59c
  16. Jun 01, 2011
    • Charles Davis's avatar
      Fix remaining Python issues leftover from my previous patch. · 4ce288e3
      Charles Davis authored
      - The Swig post-processing scripts are now run.
      - edit-swig-python-wrapper-file.py has been modified so it can be run
      from the Makefile.
      - The issue that prompted me to pass -classic to swig is fixed by this,
      so -classic isn't passed anymore.
      
      Python shouldn't complain anymore about a missing method 'FindDebuggerByID'
      on the SBDebugger object whenever lldb is run.
      
      llvm-svn: 132383
      4ce288e3
  17. May 20, 2011
  18. May 13, 2011
  19. May 11, 2011
    • Caroline Tice's avatar
      · 2b5e8504
      Caroline Tice authored
      Add ability to recognize/handle quotes around commands
      (e.g. '"target" create'  works as well as 'target create').
      
      llvm-svn: 131185
      2b5e8504
  20. May 06, 2011
    • Caroline Tice's avatar
      · ca90c47e
      Caroline Tice authored
      Replace calls to HandleCommand in lldb core with more appropriate
      direct function calls.  As part of this, collect code that processes
      arguments & options for aliases into a single function.
      
      llvm-svn: 131020
      ca90c47e
  21. May 04, 2011
    • Jim Ingham's avatar
      Change "frame var" over to using OptionGroups (and thus the OptionGroupVariableObjectDisplay). · 2837b766
      Jim Ingham authored
      Change the boolean "use_dynamic" over to a tri-state, no-dynamic, dynamic-w/o running target,
      and dynamic with running target.
      
      llvm-svn: 130832
      2837b766
    • Greg Clayton's avatar
      Added new OptionGroup classes for UInt64, UUID, File and Boolean values. · effe5c95
      Greg Clayton authored
      Removed the "image" command and moved it to "target modules". Added an alias
      for "image" to "target modules". 
      
      Added some new target commands to be able to add and load modules to a target:
      (lldb) target modules add <path>
      (lldb) target modules load [--file <path>] [--slide <offset>] [<sect-name> <sect-load-addr> ...]
      
      So you can load individual sections without running a target:
      
      (lldb) target modules load --file /usr/lib/libSystem.B.dylib __TEXT 0x7fccc80000 __DATA 0x1234000000
      
      Or you can rigidly slide an entire shared library:
      
      (lldb) target modules load --file /usr/lib/libSystem.B.dylib --slid 0x7fccc80000
      
      This should improve bare board debugging when symbol files need to be slid around manually.
      
      llvm-svn: 130796
      effe5c95
  22. May 03, 2011
    • Caroline Tice's avatar
      · e67afe15
      Caroline Tice authored
      Pre-load the Python script interpreter with the following
      convenience variables (from the ExecutionContext) each time
      it is entered: lldb.debugger, lldb.target, lldb.process, 
      lldb.thread, lldb.frame.
      
      If a frame (or thread, process, etc) does not currently exist,
      the variable contains the Python value 'None'.
      
      llvm-svn: 130792
      e67afe15
  23. May 02, 2011
    • Caroline Tice's avatar
      · 969ed3d1
      Caroline Tice authored
      This patch captures and serializes all output being written by the
      command line driver, including the lldb prompt being output by
      editline, the asynchronous process output & error messages, and
      asynchronous messages written by target stop-hooks.
      
      As part of this it introduces a new Stream class,
      StreamAsynchronousIO.  A StreamAsynchronousIO object is created with a
      broadcaster, who will eventually broadcast the stream's data for a
      listener to handle, and an event type indicating what type of event
      the broadcaster will broadcast.  When the Write method is called on a
      StreamAsynchronousIO object, the data is appended to an internal
      string.  When the Flush method is called on a StreamAsynchronousIO
      object, it broadcasts it's data string and clears the string.
      
      Anything in lldb-core that needs to generate asynchronous output for
      the end-user should use the StreamAsynchronousIO objects.
      
      I have also added a new notification type for InputReaders, to let
      them know that a asynchronous output has been written. This is to
      allow the input readers to, for example, refresh their prompts and
      lines, if desired.  I added the case statements to all the input
      readers to catch this notification, but I haven't added any code for
      handling them yet (except to the IOChannel input reader).
      
      llvm-svn: 130721
      969ed3d1
  24. Apr 28, 2011
    • Greg Clayton's avatar
      Added the ability to specify dumping options (show types, show location, · 68ebae61
      Greg Clayton authored
      depth control, pointer depth, and more) when dumping memory and viewing as
      a type.
      
      llvm-svn: 130436
      68ebae61
    • Greg Clayton's avatar
      Added a new OptionValue subclass for lldb::Format: OptionValueFormat. Added · 84c39663
      Greg Clayton authored
      new OptionGroup subclasses for:
      - output file for use with options: 
              long opts: --outfile <path> --append--output
              short opts: -o <path> -A
              
      - format for use with options:
              long opts: --format <format>
      
      - variable object display controls for depth, pointer depth, wether to show
        types, show summary, show location, flat output, use objc "po" style summary.
        
      Modified ValueObjectMemory to be able to be created either with a TypeSP or
      a ClangASTType.
      
      Switched "memory read" over to use OptionGroup subclasses: one for the outfile
      options, one for the command specific options, and one for the format.
      
      llvm-svn: 130334
      84c39663
  25. Apr 23, 2011
    • Greg Clayton's avatar
      Fixed the SymbolContext::DumpStopContext() to correctly indent and dump · 7e14f91d
      Greg Clayton authored
      inline contexts when the deepest most block is not inlined.
      
      Added source path remappings to the lldb_private::Target class that allow it
      to remap paths found in debug info so we can find source files that are elsewhere
      on the current system.
      
      Fixed disassembly by function name to disassemble inline functions that are
      inside other functions much better and to show enough context before the
      disassembly output so you can tell where things came from.
      
      Added the ability to get more than one address range from a SymbolContext 
      class for the case where a block or function has discontiguous address ranges.
      
      llvm-svn: 130044
      7e14f91d
Loading