1 //===-- SWIG Interface for SBSourceManager ----------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 namespace lldb { 11 12 %feature("docstring", 13 "Represents a central authority for displaying source code. 14 15 For example (from test/source-manager/TestSourceManager.py), 16 17 # Create the filespec for 'main.c'. 18 filespec = lldb.SBFileSpec('main.c', False) 19 source_mgr = self.dbg.GetSourceManager() 20 # Use a string stream as the destination. 21 stream = lldb.SBStream() 22 source_mgr.DisplaySourceLinesWithLineNumbers(filespec, 23 self.line, 24 2, # context before 25 2, # context after 26 '=>', # prefix for current line 27 stream) 28 29 # 2 30 # 3 int main(int argc, char const *argv[]) { 31 # => 4 printf('Hello world.\\n'); // Set break point at this line. 32 # 5 return 0; 33 # 6 } 34 self.expect(stream.GetData(), 'Source code displayed correctly', 35 exe=False, 36 patterns = ['=> %d.*Hello world' % self.line]) 37 ") SBSourceManager; 38 class SBSourceManager 39 { 40 public: 41 SBSourceManager (const lldb::SBSourceManager &rhs); 42 43 ~SBSourceManager(); 44 45 size_t 46 DisplaySourceLinesWithLineNumbers (const lldb::SBFileSpec &file, 47 uint32_t line, 48 uint32_t context_before, 49 uint32_t context_after, 50 const char* current_line_cstr, 51 lldb::SBStream &s); 52 }; 53 54 } // namespace lldb 55