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(SBCompileUnit self, …) 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
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.