aboutsummaryrefslogtreecommitdiff
path: root/lldb/scripts/Python/modify-python-lldb.py
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-07-15 19:31:49 +0000
committerGreg Clayton <gclayton@apple.com>2011-07-15 19:31:49 +0000
commitf660248238023bbb44deed53068d9f56e74fd1c6 (patch)
treeeeb6d2606b47d3fc8bb8d163e3f7fb759683db9d /lldb/scripts/Python/modify-python-lldb.py
parentb45111556da27c93a2d515167150ca14292707dc (diff)
downloadllvm-f660248238023bbb44deed53068d9f56e74fd1c6.zip
llvm-f660248238023bbb44deed53068d9f56e74fd1c6.tar.gz
llvm-f660248238023bbb44deed53068d9f56e74fd1c6.tar.bz2
Added the ability to get synthetic child values from SBValue objects that
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
Diffstat (limited to 'lldb/scripts/Python/modify-python-lldb.py')
0 files changed, 0 insertions, 0 deletions