1%feature("docstring",
2"Represents a compilation unit, or compiled source file.
3
4SBCompileUnit supports line entry iteration. For example,::
5
6    # Now get the SBSymbolContext from this frame.  We want everything. :-)
7    context = frame0.GetSymbolContext(lldb.eSymbolContextEverything)
8    ...
9
10    compileUnit = context.GetCompileUnit()
11
12    for lineEntry in compileUnit:
13        print('line entry: %s:%d' % (str(lineEntry.GetFileSpec()),
14                                    lineEntry.GetLine()))
15        print('start addr: %s' % str(lineEntry.GetStartAddress()))
16        print('end   addr: %s' % str(lineEntry.GetEndAddress()))
17
18produces: ::
19
20  line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:20
21  start addr: a.out[0x100000d98]
22  end   addr: a.out[0x100000da3]
23  line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:21
24  start addr: a.out[0x100000da3]
25  end   addr: a.out[0x100000da9]
26  line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:22
27  start addr: a.out[0x100000da9]
28  end   addr: a.out[0x100000db6]
29  line entry: /Volumes/data/lldb/svn/trunk/test/python_api/symbol-context/main.c:23
30  start addr: a.out[0x100000db6]
31  end   addr: a.out[0x100000dbc]
32  ...
33
34See also :py:class:`SBSymbolContext` and :py:class:`SBLineEntry`"
35) lldb::SBCompileUnit;
36
37%feature("docstring", "
38     Get the index for a provided line entry in this compile unit.
39
40     @param[in] line_entry
41        The SBLineEntry object for which we are looking for the index.
42
43     @param[in] exact
44        An optional boolean defaulting to false that ensures that the provided
45        line entry has a perfect match in the compile unit.
46
47     @return
48        The index of the user-provided line entry. UINT32_MAX if the line entry
49        was not found in the compile unit.") lldb::SBCompileUnit::FindLineEntryIndex;
50
51%feature("docstring", "
52     Get all types matching type_mask from debug info in this
53     compile unit.
54
55     @param[in] type_mask
56        A bitfield that consists of one or more bits logically OR'ed
57        together from the lldb::TypeClass enumeration. This allows
58        you to request only structure types, or only class, struct
59        and union types. Passing in lldb::eTypeClassAny will return
60        all types found in the debug information for this compile
61        unit.
62
63     @return
64        A list of types in this compile unit that match type_mask"
65) lldb::SBCompileUnit::GetTypes;
66