SBCompileUnit#

class lldb.SBCompileUnit(*args)#

Represents a compilation unit, or compiled source file.

SBCompileUnit supports line entry iteration. For example,:

# Now get the SBSymbolContext from this frame.  We want everything. :-)
context = frame0.GetSymbolContext(lldb.eSymbolContextEverything)
...

compileUnit = context.GetCompileUnit()

for lineEntry in compileUnit:
    print('line entry: %s:%d' % (str(lineEntry.GetFileSpec()),
                                lineEntry.GetLine()))
    print('start addr: %s' % str(lineEntry.GetStartAddress()))
    print('end   addr: %s' % str(lineEntry.GetEndAddress()))

produces:

line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:20
start addr: a.out[0x100000d98]
end   addr: a.out[0x100000da3]
line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:21
start addr: a.out[0x100000da3]
end   addr: a.out[0x100000da9]
line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:22
start addr: a.out[0x100000da9]
end   addr: a.out[0x100000db6]
line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:23
start addr: a.out[0x100000db6]
end   addr: a.out[0x100000dbc]
...

See also SBSymbolContext and SBLineEntry

Attributes Summary

file

A read only property that returns the same result an lldb object that represents the source file (lldb.SBFileSpec) for the compile unit.

num_line_entries

A read only property that returns the number of line entries in a compile unit as an integer.

Methods Summary

FindLineEntryIndex(-> uint32_t -> uint32_t)

Get the index for a provided line entry in this compile unit.

FindSupportFileIndex(SBCompileUnit self, ...)

GetDescription(SBCompileUnit self, ...)

GetFileSpec(SBCompileUnit self)

GetLanguage(SBCompileUnit self)

GetLineEntryAtIndex(SBCompileUnit self, ...)

GetNumLineEntries(SBCompileUnit self)

GetNumSupportFiles(SBCompileUnit self)

GetSupportFileAtIndex(SBCompileUnit self, ...)

GetTypes(SBCompileUnit self, ...)

Get all types matching type_mask from debug info in this compile unit.

IsValid(SBCompileUnit self)

Attributes Documentation

file#

A read only property that returns the same result an lldb object that represents the source file (lldb.SBFileSpec) for the compile unit.

num_line_entries#

A read only property that returns the number of line entries in a compile unit as an integer.

Methods Documentation

FindLineEntryIndex(SBCompileUnit self, SBLineEntry line_entry, bool exact=False) uint32_t#
FindLineEntryIndex(SBCompileUnit self, uint32_t start_idx, uint32_t line, SBFileSpec inline_file_spec) uint32_t
FindLineEntryIndex(SBCompileUnit self, uint32_t start_idx, uint32_t line, SBFileSpec inline_file_spec, bool exact) uint32_t

Get the index for a provided line entry in this compile unit.

@param[in] line_entry

The SBLineEntry object for which we are looking for the index.

@param[in] exact

An optional boolean defaulting to false that ensures that the provided line entry has a perfect match in the compile unit.

@return

The index of the user-provided line entry. UINT32_MAX if the line entry was not found in the compile unit.

FindSupportFileIndex(SBCompileUnit self, uint32_t start_idx, SBFileSpec sb_file, bool full) uint32_t#
GetDescription(SBCompileUnit self, SBStream description) bool#
GetFileSpec(SBCompileUnit self) SBFileSpec#
GetLanguage(SBCompileUnit self) lldb::LanguageType#
GetLineEntryAtIndex(SBCompileUnit self, uint32_t idx) SBLineEntry#
GetNumLineEntries(SBCompileUnit self) uint32_t#
GetNumSupportFiles(SBCompileUnit self) uint32_t#
GetSupportFileAtIndex(SBCompileUnit self, uint32_t idx) SBFileSpec#
GetTypes(SBCompileUnit self, uint32_t type_mask=eTypeClassAny) SBTypeList#

Get all types matching type_mask from debug info in this compile unit.

@param[in] type_mask

A bitfield that consists of one or more bits logically OR’ed together from the lldb::TypeClass enumeration. This allows you to request only structure types, or only class, struct and union types. Passing in lldb::eTypeClassAny will return all types found in the debug information for this compile unit.

@return

A list of types in this compile unit that match type_mask

IsValid(SBCompileUnit self) bool#
__iter__()#

Iterate over all line entries in a lldb.SBCompileUnit object.

__len__()#

Return the number of line entries in a lldb.SBCompileUnit object.