- Completely new implementation of SBType
- Various enhancements in several other classes
Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>:
- these return the actual elements into the container as the children of the container
- basic template name parsing that works (hopefully) on both Clang and GCC
- find them in examples/synthetic and in the test suite in functionalities/data-formatter/data-formatter-python-synth
New summary string token ${svar :
- the syntax is just the same as in ${var but this new token lets you read the values
coming from the synthetic children provider instead of the actual children
- Python providers above provide a synthetic child len that returns the number of elements
into the container
Full bug fix for the issue in which getting byte size for a non-complete type would crash LLDB
Several other fixes, including:
- inverted the order of arguments in the ClangASTType constructor
- EvaluationPoint now only returns SharedPointer's to Target and Process
- the help text for several type subcommands now correctly indicates argument-less options as such
llvm-svn: 136504
21 lines
539 B
Python
21 lines
539 B
Python
import lldb
|
|
class ftsp:
|
|
def __init__(self, valobj, dict):
|
|
self.valobj = valobj;
|
|
self.update()
|
|
def num_children(self):
|
|
if self.char.IsValid():
|
|
return 4;
|
|
return 0;
|
|
def get_child_index(self,name):
|
|
return 0;
|
|
def get_child_at_index(self,index):
|
|
if index == 0:
|
|
return self.x.Cast(self.char)
|
|
return self.x.CreateChildAtOffset(str(index),
|
|
index,
|
|
self.char);
|
|
def update(self):
|
|
self.x = self.valobj.GetChildMemberWithName('x');
|
|
self.char = self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar)
|