llvm-project/lldb/scripts/interface/SBSourceManager.i

60 lines
2.5 KiB
C++

//===-- SWIG Interface for SBSourceManager ----------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
namespace lldb {
%feature("docstring",
"Represents a central authority for displaying source code.
For example (from test/source-manager/TestSourceManager.py),
# Create the filespec for 'main.c'.
filespec = lldb.SBFileSpec('main.c', False)
source_mgr = self.dbg.GetSourceManager()
# Use a string stream as the destination.
stream = lldb.SBStream()
source_mgr.DisplaySourceLinesWithLineNumbers(filespec,
self.line,
2, # context before
2, # context after
'=>', # prefix for current line
stream)
# 2
# 3 int main(int argc, char const *argv[]) {
# => 4 printf('Hello world.\\n'); // Set break point at this line.
# 5 return 0;
# 6 }
self.expect(stream.GetData(), 'Source code displayed correctly',
exe=False,
patterns = ['=> %d.*Hello world' % self.line])") SBSourceManager;
class SBSourceManager
{
public:
SBSourceManager (const lldb::SBSourceManager &rhs);
~SBSourceManager();
size_t
DisplaySourceLinesWithLineNumbers (const lldb::SBFileSpec &file,
uint32_t line,
uint32_t context_before,
uint32_t context_after,
const char* current_line_cstr,
lldb::SBStream &s);
size_t
DisplaySourceLinesWithLineNumbersAndColumn (const lldb::SBFileSpec &file,
uint32_t line, uint32_t column,
uint32_t context_before,
uint32_t context_after,
const char* current_line_cstr,
lldb::SBStream &s);
};
} // namespace lldb