131 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			131 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);
 | |
|     
 | |
|      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
 |