mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 22:38:56 -04:00

//------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// module. /// /// @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 module. /// /// @return /// A list of types in this module that match \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBModule::GetTypes (uint32_t type_mask) //------------------------------------------------------------------ /// Get all types matching \a 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 \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBCompileUnit::GetTypes (uint32_t type_mask = lldb::eTypeClassAny); This lets you request types by filling out a mask that contains one or more bits from the lldb::TypeClass enumerations, so you can only get the types you really want. llvm-svn: 184251
128 lines
4.1 KiB
C++
128 lines
4.1 KiB
C++
//===-- SWIG Interface for SBCompileUnit ------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
namespace lldb {
|
|
|
|
%feature("docstring",
|
|
"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"
|
|
) SBCompileUnit;
|
|
class SBCompileUnit
|
|
{
|
|
public:
|
|
|
|
SBCompileUnit ();
|
|
|
|
SBCompileUnit (const lldb::SBCompileUnit &rhs);
|
|
|
|
~SBCompileUnit ();
|
|
|
|
bool
|
|
IsValid () const;
|
|
|
|
lldb::SBFileSpec
|
|
GetFileSpec () const;
|
|
|
|
uint32_t
|
|
GetNumLineEntries () const;
|
|
|
|
lldb::SBLineEntry
|
|
GetLineEntryAtIndex (uint32_t idx) const;
|
|
|
|
uint32_t
|
|
FindLineEntryIndex (uint32_t start_idx,
|
|
uint32_t line,
|
|
lldb::SBFileSpec *inline_file_spec) const;
|
|
|
|
uint32_t
|
|
FindLineEntryIndex (uint32_t start_idx,
|
|
uint32_t line,
|
|
lldb::SBFileSpec *inline_file_spec,
|
|
bool exact) const;
|
|
|
|
SBFileSpec
|
|
GetSupportFileAtIndex (uint32_t idx) const;
|
|
|
|
uint32_t
|
|
GetNumSupportFiles () const;
|
|
|
|
uint32_t
|
|
FindSupportFileIndex (uint32_t start_idx, const SBFileSpec &sb_file, bool full);
|
|
|
|
%feature("docstring", "
|
|
//------------------------------------------------------------------
|
|
/// Get all types matching \a 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 \a type_mask
|
|
//------------------------------------------------------------------
|
|
") GetTypes;
|
|
lldb::SBTypeList
|
|
GetTypes (uint32_t type_mask = lldb::eTypeClassAny);
|
|
|
|
bool
|
|
GetDescription (lldb::SBStream &description);
|
|
|
|
bool
|
|
operator == (const lldb::SBCompileUnit &rhs) const;
|
|
|
|
bool
|
|
operator != (const lldb::SBCompileUnit &rhs) const;
|
|
|
|
%pythoncode %{
|
|
__swig_getmethods__["file"] = GetFileSpec
|
|
if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns the same result an lldb object that represents the source file (lldb.SBFileSpec) for the compile unit.''')
|
|
|
|
__swig_getmethods__["num_line_entries"] = GetNumLineEntries
|
|
if _newclass: num_line_entries = property(GetNumLineEntries, None, doc='''A read only property that returns the number of line entries in a compile unit as an integer.''')
|
|
%}
|
|
};
|
|
|
|
} // namespace lldb
|