forked from OSchip/llvm-project
131 lines
4.1 KiB
OpenEdge ABL
131 lines
4.1 KiB
OpenEdge ABL
|
//===-- 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);
|
||
|
|
||
|
lldb::LanguageType
|
||
|
GetLanguage ();
|
||
|
|
||
|
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
|