• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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