diff options
author | Greg Clayton <gclayton@apple.com> | 2011-07-15 19:31:49 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2011-07-15 19:31:49 +0000 |
commit | f660248238023bbb44deed53068d9f56e74fd1c6 (patch) | |
tree | eeb6d2606b47d3fc8bb8d163e3f7fb759683db9d /lldb/scripts/Python/modify-python-lldb.py | |
parent | b45111556da27c93a2d515167150ca14292707dc (diff) | |
download | llvm-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