Package lldb :: Class SBType
[hide private]
[frames] | no frames]

Class SBType

source code



    Represents a data type in lldb.  The FindFirstType() method of SBTarget/SBModule
    returns a SBType.

    SBType supports the eq/ne operator. For example,

    main.cpp:

    class Task {
    public:
        int id;
        Task *next;
        Task(int i, Task *n):
            id(i),
            next(n)
        {}
    };

    int main (int argc, char const *argv[])
    {
        Task *task_head = new Task(-1, NULL);
        Task *task1 = new Task(1, NULL);
        Task *task2 = new Task(2, NULL);
        Task *task3 = new Task(3, NULL); // Orphaned.
        Task *task4 = new Task(4, NULL);
        Task *task5 = new Task(5, NULL);

        task_head->next = task1;
        task1->next = task2;
        task2->next = task4;
        task4->next = task5;

        int total = 0;
        Task *t = task_head;
        while (t != NULL) {
            if (t->id >= 0)
                ++total;
            t = t->next;
        }
        printf('We have a total number of %d tasks
', total);

        // This corresponds to an empty task list.
        Task *empty_task_head = new Task(-1, NULL);

        return 0; // Break at this line
    }

    find_type.py:

            # Get the type 'Task'.
            task_type = target.FindFirstType('Task')
            self.assertTrue(task_type)

            # Get the variable 'task_head'.
            frame0.FindVariable('task_head')
            task_head_type = task_head.GetType()
            self.assertTrue(task_head_type.IsPointerType())

            # task_head_type is 'Task *'.
            task_pointer_type = task_type.GetPointerType()
            self.assertTrue(task_head_type == task_pointer_type)

            # Get the child mmember 'id' from 'task_head'.
            id = task_head.GetChildMemberWithName('id')
            id_type = id.GetType()

            # SBType.GetBasicType() takes an enum 'BasicType' (lldb-enumerations.h).
            int_type = id_type.GetBasicType(lldb.eBasicTypeInt)
            # id_type and int_type should be the same type!
            self.assertTrue(id_type == int_type)

    ...

    

Instance Methods [hide private]
 
__setattr__(self, name, value)
x.__setattr__('name', value) <==> x.name = value
source code
 
__getattr__(self, name) source code
 
__repr__(self)
repr(x)
source code
 
__iter__(self) source code
 
__len__(self) source code
 
__eq__(self, other) source code
 
__ne__(self, other) source code
 
__init__(self, *args)
__init__(lldb::SBType self) -> SBType __init__(lldb::SBType self, SBType rhs) -> SBType
source code
 
__swig_destroy__(...)
delete_SBType(SBType self)
 
__del__(self) source code
 
__nonzero__(self) source code
 
IsValid(self)
IsValid(SBType self) -> bool
source code
 
GetByteSize(self)
GetByteSize(SBType self) -> uint64_t
source code
 
IsPointerType(self)
IsPointerType(SBType self) -> bool
source code
 
IsReferenceType(self)
IsReferenceType(SBType self) -> bool
source code
 
IsFunctionType(self)
IsFunctionType(SBType self) -> bool
source code
 
IsPolymorphicClass(self)
IsPolymorphicClass(SBType self) -> bool
source code
 
GetPointerType(self)
GetPointerType(SBType self) -> SBType
source code
 
GetPointeeType(self)
GetPointeeType(SBType self) -> SBType
source code
 
GetReferenceType(self)
GetReferenceType(SBType self) -> SBType
source code
 
GetDereferencedType(self)
GetDereferencedType(SBType self) -> SBType
source code
 
GetUnqualifiedType(self)
GetUnqualifiedType(SBType self) -> SBType
source code
 
GetCanonicalType(self)
GetCanonicalType(SBType self) -> SBType
source code
 
GetBasicType(self, *args)
GetBasicType(SBType self) -> lldb::BasicType GetBasicType(SBType self, lldb::BasicType type) -> SBType
source code
 
GetNumberOfFields(self)
GetNumberOfFields(SBType self) -> uint32_t
source code
 
GetNumberOfDirectBaseClasses(self)
GetNumberOfDirectBaseClasses(SBType self) -> uint32_t
source code
 
GetNumberOfVirtualBaseClasses(self)
GetNumberOfVirtualBaseClasses(SBType self) -> uint32_t
source code
 
GetFieldAtIndex(self, *args)
GetFieldAtIndex(SBType self, uint32_t idx) -> SBTypeMember
source code
 
GetDirectBaseClassAtIndex(self, *args)
GetDirectBaseClassAtIndex(SBType self, uint32_t idx) -> SBTypeMember
source code
 
GetVirtualBaseClassAtIndex(self, *args)
GetVirtualBaseClassAtIndex(SBType self, uint32_t idx) -> SBTypeMember
source code
 
GetName(self)
GetName(SBType self) -> str const *
source code
 
GetTypeClass(self)
GetTypeClass(SBType self) -> lldb::TypeClass
source code
 
GetNumberOfTemplateArguments(self)
GetNumberOfTemplateArguments(SBType self) -> uint32_t
source code
 
GetTemplateArgumentType(self, *args)
GetTemplateArgumentType(SBType self, uint32_t idx) -> SBType
source code
 
GetTemplateArgumentKind(self, *args)
GetTemplateArgumentKind(SBType self, uint32_t idx) -> lldb::TemplateArgumentKind
source code
 
GetFunctionReturnType(self)
GetFunctionReturnType(SBType self) -> SBType
source code
 
GetFunctionArgumentTypes(self)
GetFunctionArgumentTypes(SBType self) -> SBTypeList
source code
 
IsTypeComplete(self)
IsTypeComplete(SBType self) -> bool
source code
 
template_arg_array(self) source code
 
get_bases_array(self)
An accessor function that returns a list() that contains all direct base classes in a lldb.SBType object.
source code
 
get_vbases_array(self)
An accessor function that returns a list() that contains all fields in a lldb.SBType object.
source code
 
get_fields_array(self)
An accessor function that returns a list() that contains all fields in a lldb.SBType object.
source code
 
get_members_array(self)
An accessor function that returns a list() that contains all members (base classes and fields) in a lldb.SBType object in ascending bit offset order.
source code
 
__str__(self)
__str__(SBType self) -> PyObject *
source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __sizeof__, __subclasshook__

Class Variables [hide private]
  __swig_setmethods__ = {}
  __swig_getmethods__ = {}
Properties [hide private]
  bases
A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the direct base classes for this type.
  fields
A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the fields for this type.
  is_complete
A read only property that returns a boolean value that indicates if this type is a complete type (True) or a forward declaration (False).
  is_pointer
A read only property that returns a boolean value that indicates if this type is a pointer type.
  is_reference
A read only property that returns a boolean value that indicates if this type is a function type.
  members
A read only property that returns a list() of all lldb.SBTypeMember objects that represent all of the base classes, virtual base classes and fields for this type in ascending bit offset order.
  name
A read only property that returns the name for this type as a string.
  num_bases
A read only property that returns number of direct base classes in this type as an integer.
  num_fields
A read only property that returns number of fields in this type as an integer.
  num_template_args
A read only property that returns number of template arguments in this type as an integer.
  num_vbases
A read only property that returns number of virtual base classes in this type as an integer.
  size
A read only property that returns size in bytes for this type as an integer.
  template_args
A read only property that returns a list() of lldb.SBType objects that represent all template arguments in this type.
  type
A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eTypeClass") that represents a classification for this type.
  vbases
A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the virtual base classes for this type.

Inherited from object: __class__

Method Details [hide private]

__setattr__(self, name, value)

source code 

x.__setattr__('name', value) <==> x.name = value

Overrides: object.__setattr__
(inherited documentation)

__repr__(self)
(Representation operator)

source code 

repr(x)

Overrides: object.__repr__
(inherited documentation)

__init__(self, *args)
(Constructor)

source code 

__init__(lldb::SBType self) -> SBType __init__(lldb::SBType self, SBType rhs) -> SBType

Overrides: object.__init__

__str__(self)
(Informal representation operator)

source code 

__str__(SBType self) -> PyObject *

Overrides: object.__str__

Property Details [hide private]

bases

A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the direct base classes for this type.

Get Method:
get_bases_array(self) - An accessor function that returns a list() that contains all direct base classes in a lldb.SBType object.

fields

A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the fields for this type.

Get Method:
get_fields_array(self) - An accessor function that returns a list() that contains all fields in a lldb.SBType object.

is_complete

A read only property that returns a boolean value that indicates if this type is a complete type (True) or a forward declaration (False).

Get Method:
IsTypeComplete(self) - IsTypeComplete(SBType self) -> bool

is_pointer

A read only property that returns a boolean value that indicates if this type is a pointer type.

Get Method:
IsPointerType(self) - IsPointerType(SBType self) -> bool

is_reference

A read only property that returns a boolean value that indicates if this type is a function type.

Get Method:
IsReferenceType(self) - IsReferenceType(SBType self) -> bool

members

A read only property that returns a list() of all lldb.SBTypeMember objects that represent all of the base classes, virtual base classes and fields for this type in ascending bit offset order.

Get Method:
get_members_array(self) - An accessor function that returns a list() that contains all members (base classes and fields) in a lldb.SBType object in ascending bit offset order.

name

A read only property that returns the name for this type as a string.

Get Method:
GetName(self) - GetName(SBType self) -> str const *

num_bases

A read only property that returns number of direct base classes in this type as an integer.

Get Method:
GetNumberOfDirectBaseClasses(self) - GetNumberOfDirectBaseClasses(SBType self) -> uint32_t

num_fields

A read only property that returns number of fields in this type as an integer.

Get Method:
GetNumberOfFields(self) - GetNumberOfFields(SBType self) -> uint32_t

num_template_args

A read only property that returns number of template arguments in this type as an integer.

Get Method:
GetNumberOfTemplateArguments(self) - GetNumberOfTemplateArguments(SBType self) -> uint32_t

num_vbases

A read only property that returns number of virtual base classes in this type as an integer.

Get Method:
GetNumberOfVirtualBaseClasses(self) - GetNumberOfVirtualBaseClasses(SBType self) -> uint32_t

size

A read only property that returns size in bytes for this type as an integer.

Get Method:
GetByteSize(self) - GetByteSize(SBType self) -> uint64_t

template_args

A read only property that returns a list() of lldb.SBType objects that represent all template arguments in this type.

Get Method:
template_arg_array(self)

type

A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eTypeClass") that represents a classification for this type.

Get Method:
GetTypeClass(self) - GetTypeClass(SBType self) -> lldb::TypeClass

vbases

A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the virtual base classes for this type.

Get Method:
get_vbases_array(self) - An accessor function that returns a list() that contains all fields in a lldb.SBType object.