Skip to content
  1. Jul 25, 2011
  2. 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
  3. 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
  4. 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
  5. Feb 09, 2011
  6. Nov 19, 2010
  7. Oct 26, 2010
    • Caroline Tice's avatar
      First pass at adding logging capabilities for the API functions. At the moment · ceb6b139
      Caroline Tice authored
      it logs the function calls, their arguments and the return values.  This is not
      complete or polished, but I am committing it now, at the request of someone who
      really wants to use it, even though it's not really done.  It currently does not
      attempt to log all the functions, just the most important ones.  I will be 
      making further adjustments to the API logging code over the next few days/weeks.
      (Suggestions for improvements are welcome).
      
      
      Update the Python build scripts to re-build the swig C++ file whenever 
      the python-extensions.swig file is modified.
      
      Correct the help for 'log enable' command (give it the correct number & type of
      arguments).
      
      llvm-svn: 117349
      ceb6b139
  8. Oct 04, 2010
  9. Jul 14, 2010
  10. Jun 23, 2010
    • Greg Clayton's avatar
      Very large changes that were needed in order to allow multiple connections · 6611103c
      Greg Clayton authored
      to the debugger from GUI windows. Previously there was one global debugger
      instance that could be accessed that had its own command interpreter and
      current state (current target/process/thread/frame). When a GUI debugger
      was attached, if it opened more than one window that each had a console
      window, there were issues where the last one to setup the global debugger
      object won and got control of the debugger.
      
      To avoid this we now create instances of the lldb_private::Debugger that each 
      has its own state:
      - target list for targets the debugger instance owns
      - current process/thread/frame
      - its own command interpreter
      - its own input, output and error file handles to avoid conflicts
      - its own input reader stack
      
      So now clients should call:
      
          SBDebugger::Initialize(); // (static function)
      
          SBDebugger debugger (SBDebugger::Create());
          // Use which ever file handles you wish
          debugger.SetErrorFileHandle (stderr, false);
          debugger.SetOutputFileHandle (stdout, false);
          debugger.SetInputFileHandle (stdin, true);
      
          // main loop
          
          SBDebugger::Terminate(); // (static function)
          
      SBDebugger::Initialize() and SBDebugger::Terminate() are ref counted to
      ensure nothing gets destroyed too early when multiple clients might be
      attached.
      
      Cleaned up the command interpreter and the CommandObject and all subclasses
      to take more appropriate arguments.
      
      llvm-svn: 106615
      6611103c
  11. Jun 08, 2010
Loading