summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
diff options
context:
space:
mode:
authorEnrico Granata <granata.enrico@gmail.com>2011-07-29 19:53:35 +0000
committerEnrico Granata <granata.enrico@gmail.com>2011-07-29 19:53:35 +0000
commit6f3533fb1d742620328b4fcc79410d3e09d6eb8d (patch)
tree4ed75acf7c94fefcab457f17a568827d5b0e3c22 /lldb/scripts/Python
parentce0ceebb1c5f896e992e1cac36fad732daf55cb0 (diff)
downloadbcm5719-llvm-6f3533fb1d742620328b4fcc79410d3e09d6eb8d.tar.gz
bcm5719-llvm-6f3533fb1d742620328b4fcc79410d3e09d6eb8d.zip
Public API changes:
- 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
Diffstat (limited to 'lldb/scripts/Python')
-rw-r--r--lldb/scripts/Python/interface/SBModule.i7
-rw-r--r--lldb/scripts/Python/interface/SBTarget.i6
-rw-r--r--lldb/scripts/Python/interface/SBType.i142
-rw-r--r--lldb/scripts/Python/interface/SBValue.i31
4 files changed, 100 insertions, 86 deletions
diff --git a/lldb/scripts/Python/interface/SBModule.i b/lldb/scripts/Python/interface/SBModule.i
index cea05e7ce9d..6f78dff68df 100644
--- a/lldb/scripts/Python/interface/SBModule.i
+++ b/lldb/scripts/Python/interface/SBModule.i
@@ -137,6 +137,13 @@ public:
uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits
bool append,
lldb::SBSymbolContextList& sc_list);
+
+ lldb::SBType
+ FindFirstType (const char* name);
+
+ lldb::SBTypeList
+ FindTypes (const char* type);
+
%feature("docstring", "
//------------------------------------------------------------------
diff --git a/lldb/scripts/Python/interface/SBTarget.i b/lldb/scripts/Python/interface/SBTarget.i
index 3ad6bed704a..40646209be5 100644
--- a/lldb/scripts/Python/interface/SBTarget.i
+++ b/lldb/scripts/Python/interface/SBTarget.i
@@ -320,6 +320,12 @@ public:
uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits
bool append,
lldb::SBSymbolContextList& sc_list);
+
+ lldb::SBType
+ FindFirstType (const char* type);
+
+ lldb::SBTypeList
+ FindTypes (const char* type);
%feature("docstring", "
//------------------------------------------------------------------
diff --git a/lldb/scripts/Python/interface/SBType.i b/lldb/scripts/Python/interface/SBType.i
index e7d57b4fe76..03cfe44906d 100644
--- a/lldb/scripts/Python/interface/SBType.i
+++ b/lldb/scripts/Python/interface/SBType.i
@@ -9,91 +9,63 @@
namespace lldb {
-class SBTypeMember;
-
-class SBType
-{
-public:
-
- SBType (void *ast = NULL, void *clang_type = NULL);
-
- SBType (const SBType &rhs);
-
- ~SBType ();
-
- bool
- IsValid();
-
- const char *
- GetName();
-
- uint64_t
- GetByteSize();
-
- uint64_t
- GetNumberChildren (bool omit_empty_base_classes);
-
- bool
- GetChildAtIndex (bool omit_empty_base_classes, uint32_t idx, SBTypeMember &member);
-
- uint32_t
- GetChildIndexForName (bool omit_empty_base_classes, const char *name);
-
- bool
- IsAPointerType ();
-
- SBType
- GetPointeeType ();
-
- static bool
- IsPointerType (void *opaque_type);
-
- bool
- GetDescription (lldb::SBStream &description);
-};
-
-class SBTypeMember
-{
-public:
-
- SBTypeMember ();
-
- SBTypeMember (const SBTypeMember &rhs);
-
- ~SBTypeMember ();
-
- bool
- IsBaseClass ();
-
- bool
- IsValid ();
-
- void
- Clear();
-
- bool
- IsBitfield ();
-
- size_t
- GetBitfieldWidth ();
+ class SBType
+ {
+ public:
+
+ SBType (const SBType &rhs);
+
+ ~SBType ();
+
+ bool
+ IsValid() const;
+
+ size_t
+ GetByteSize() const;
+
+ bool
+ IsPointerType() const;
+
+ bool
+ IsReferenceType() const;
+
+ SBType
+ GetPointerType() const;
+
+ SBType
+ GetPointeeType() const;
+
+ SBType
+ GetReferenceType() const;
+
+ SBType
+ GetDereferencedType() const;
+
+ SBType
+ GetBasicType(lldb::BasicType type) const;
+
+ const char*
+ GetName();
+ };
- size_t
- GetBitfieldOffset ();
-
- size_t
- GetOffset ();
-
- const char *
- GetName ();
-
- SBType
- GetType();
-
- SBType
- GetParentType();
-
- void
- SetName (const char *name);
-};
+ class SBTypeList
+ {
+ public:
+ SBTypeList();
+
+ void
+ AppendType(SBType type);
+
+ SBType
+ GetTypeAtIndex(int index);
+
+ int
+ GetSize();
+
+ ~SBTypeList();
+
+ private:
+ std::auto_ptr<SBTypeListImpl> m_content;
+ };
} // namespace lldb
diff --git a/lldb/scripts/Python/interface/SBValue.i b/lldb/scripts/Python/interface/SBValue.i
index 68e97e3323e..24f966099c3 100644
--- a/lldb/scripts/Python/interface/SBValue.i
+++ b/lldb/scripts/Python/interface/SBValue.i
@@ -203,7 +203,22 @@ public:
GetChildAtIndex (uint32_t idx,
lldb::DynamicValueType use_dynamic,
bool can_create_synthetic);
+
+ lldb::SBValue
+ CreateChildAtOffset (const char *name, uint32_t offset, const SBType& type);
+
+ lldb::SBValue
+ SBValue::Cast(const SBType& type);
+ lldb::SBValue
+ CreateValueFromExpression (const char *name, const char* expression);
+
+ lldb::SBValue
+ CreateValueFromAddress(const char* name, lldb::addr_t address, const SBType& type);
+
+ lldb::SBType
+ GetType();
+
%feature("docstring", "
//------------------------------------------------------------------
/// Returns the child member index.
@@ -257,13 +272,27 @@ public:
void *
GetOpaqueType();
-
lldb::SBValue
Dereference ();
+ lldb::SBValue
+ AddressOf();
+
bool
TypeIsPointerType ();
+
+ lldb::SBTarget
+ GetTarget();
+ lldb::SBProcess
+ GetProcess();
+
+ lldb::SBThread
+ GetThread();
+
+ lldb::SBFrame
+ GetFrame();
+
bool
GetDescription (lldb::SBStream &description);
OpenPOWER on IntegriCloud