Skip to content
  1. Jul 15, 2011
    • Greg Clayton's avatar
      Added the ability to get synthetic child values from SBValue objects that · f6602482
      Greg Clayton authored
      represent pointers and arrays by adding an extra parameter to the 
      
      SBValue
      SBValue::GetChildAtIndex (uint32_t idx, 
                               DynamicValueType use_dynamic, 
                               bool can_create_synthetic);
      
      The new "can_create_synthetic" will allow you to create child values that
      aren't actually a part of the original type. So if you code like:
      
      int *foo_ptr = ...
      
      And you have a SBValue that contains the value for "foo_ptr":
      
      SBValue foo_value = ...
      
      You can now get the "foo_ptr[12]" item by doing this:
      
      v = foo_value.GetChiltAtIndex (12, lldb.eNoDynamicValues, True);
      
      Normall the "foo_value" would only have one child value (an integer), but
      we can create "synthetic" child values by treating the pointer as an array.
      
      Likewise if you have code like:
      
      int array[2];
      
      array_value = ....
      
      v = array_value.GetChiltAtIndex (0);     // Success, v will be valid
      v = array_value.GetChiltAtIndex (1);     // Success, v will be valid
      v = array_value.GetChiltAtIndex (2);     // Fail, v won't be valid, "2" is not a valid zero based index in "array"
      
      But if you use the ability to create synthetic children:
      
      v = array_value.GetChiltAtIndex (0, lldb.eNoDynamicValues, True);     // Success, v will be valid
      v = array_value.GetChiltAtIndex (1, lldb.eNoDynamicValues, True);     // Success, v will be valid
      v = array_value.GetChiltAtIndex (2, lldb.eNoDynamicValues, True);     // Success, v will be valid
      
      llvm-svn: 135292
      f6602482
    • Greg Clayton's avatar
      Fixed the comment lines in the file comment headers. · 59ec512c
      Greg Clayton authored
      llvm-svn: 135284
      59ec512c
    • Greg Clayton's avatar
      Added the ability to connect using "tcp://<host>:<port>" which is the · 57508026
      Greg Clayton authored
      same as the old "connect://<host>:<port>". Also added the ability to
      connect using "udp://<host>:<port>" which will open a connected 
      datagram socket. I need to find a way to specify a non connected
      datagram socket as well. 
      
      We might need to start setting some settings in the URL itself, 
      maybe something like:
      
      udp://<host>:<port>?connected=yes
      udp://<host>:<port>?connected=no
      
      I am open to suggestions for URL settings.
      
      Also did more work on the KDP darwin kernel plug-in.
      
       
      
      llvm-svn: 135277
      57508026
    • Greg Clayton's avatar
      Hollowed out process plug-in to do KDP darwin kernel debugging. · f9765acd
      Greg Clayton authored
      llvm-svn: 135240
      f9765acd
    • 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
    • Johnny Chen's avatar
    • Johnny Chen's avatar
      Add usage docstrings to SBTarget, SBProcess, and SBThread. · e625325d
      Johnny Chen authored
      llvm-svn: 135221
      e625325d
    • Johnny Chen's avatar
      Minor change of variable name, from m to b (for breakpoint). · b3f07c19
      Johnny Chen authored
      llvm-svn: 135214
      b3f07c19
    • Johnny Chen's avatar
      Fixed a crasher where entering 'help disasm' on the command line would crash lldb. · 331eff39
      Johnny Chen authored
      The reasom of the crash is because of a missing entry in the argument table corresponding to eArgTypeUnsignedInteger.
      Add such entry and modify the call site of the crash to go through a fail-fast API to retrieve the argument table.
      
      Add a regression test to TestHelp.py.
      
      llvm-svn: 135206
      331eff39
  2. Jul 14, 2011
  3. Jul 13, 2011
  4. Jul 12, 2011
    • Greg Clayton's avatar
      Added the ability to _not_ skip the prologue when settings breakpoints · d16e1e59
      Greg Clayton authored
      by name by adding an extra parameter to the lldb_private::Target breakpoint 
      setting functions.
      
      Added a function in the DWARF symbol file plug-in that can dump errors
      and prints out which DWARF file the error is happening in so we can track
      down what used to be assertions easily.
      
      Fixed the MacOSX kernel plug-in to properly read the kext images and set
      the kext breakpoint to watch for kexts as they are loaded.
      
      llvm-svn: 134990
      d16e1e59
    • 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
      test case for the named summaries feature · d62e57fb
      Enrico Granata authored
      llvm-svn: 134944
      d62e57fb
    • 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
    • Johnny Chen's avatar
      Passing in os.ctermid() as the arg for SBTarget.Launch(...) for stdin_path,... · 1d3e880c
      Johnny Chen authored
      Passing in os.ctermid() as the arg for SBTarget.Launch(...) for stdin_path, stdout_path, and stderr_path
      is just wrong and resulted in the inferior's output getting mixed into the GDB remote communication's
      log file.  Change all test cases to not pass os.ctermid() and either use SBTarget.LaunchSimple() or
      SBTarget.Launch() and pass None as stdin_path/stdout_path/srderr_path to use a pseudo terminal.
      
      rdar://problem/9716499 program output is getting mixed into the GDB remote communications
      
      llvm-svn: 134940
      1d3e880c
  5. Jul 11, 2011
  6. Jul 10, 2011
    • Greg Clayton's avatar
      Allow the built in ValueObject summary providers for C strings · 45ba8543
      Greg Clayton authored
      use lldb_private::Target::ReadMemory(...) to allow constant strings
      to be displayed in global variables prior on in between process
      execution.
      
      Centralized the variable declaration dumping into:
      
      	bool
      	Variable::DumpDeclaration (Stream *s, bool show_fullpaths, bool show_module);
      
      Fixed an issue if you used "target variable --regex <regex>" where the
      variable name would not be displayed, but the regular expression would.
      
      Fixed an issue when viewing global variables through "target variable"
      might not display correctly when doing DWARF in object files.
      
      llvm-svn: 134878
      45ba8543
    • Greg Clayton's avatar
      Fixed an assertion crasher. We now handle things correclty and · dda0d127
      Greg Clayton authored
      emit an error to stderr when we see this issue.
      
      llvm-svn: 134872
      dda0d127
  7. Jul 09, 2011
    • Greg Clayton's avatar
      Fixed the global and static variables to always be in scope. · daf515fc
      Greg Clayton authored
      Made it so that you can create synthetic children of array
      value objects. This is for creating array members when the
      array index is out of range. This comes in handy when you have
      a structure definition like:
      
      struct Collection
      {
          uint32_t count;
          Item array[0];
      };
      "array" has 1 item, but many times in practice there are more
      items in "item_array".
      
      This allows you to do:
      
      (lldb) target variable g_collection.array[3]
      
      To implement this, the get child at index has been modified
      to have a "ignore_array_bounds" boolean that can be set to true.
      
      llvm-svn: 134846
      daf515fc
Loading