mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-10 01:55:08 +00:00
eba97426d4
Summary: This patch removes the "//----" frames and "///" leading lines from docstring comments. We already have code doing transformations like this in modify-python-lldb.py, but that's a script I'd like to remove. Instead of running these transformations everytime we run swig, we can just perform equivalent on its input once. This patch can be reproduced (e.g. for downstream merges) with the following "sweet" perl command: perl -i -p -e 'BEGIN{ $/ = undef;} s:(" *\n) *//-----*\n:\1:gs; s:^( *)/// ?:\1:gsm; s:^ *//------*\n( *\n)?( *"):\2:gsm; s: *$::gsm; s:\n *"\):"):gsm' scripts/interface/*.i This command produces nearly equivalent python files to those produced by the relevant code in modify-python-lldb.py. The only difference I noticed is that here I am slightly more agressive in removing trailing newlines from docstring comments (the python script seems to leave newlines in class-level docstrings). Reviewers: amccarth, clayborg, jingham, aprantl Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D60498 llvm-svn: 358683
112 lines
3.8 KiB
C++
112 lines
3.8 KiB
C++
//===-- SWIG Interface for SBSymbol -----------------------------*- 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 the symbol possibly associated with a stack frame.
|
|
SBModule contains SBSymbol(s). SBSymbol can also be retrieved from SBFrame.
|
|
|
|
See also SBModule and SBFrame."
|
|
) SBSymbol;
|
|
class SBSymbol
|
|
{
|
|
public:
|
|
|
|
SBSymbol ();
|
|
|
|
~SBSymbol ();
|
|
|
|
SBSymbol (const lldb::SBSymbol &rhs);
|
|
|
|
bool
|
|
IsValid () const;
|
|
|
|
explicit operator bool() const;
|
|
|
|
|
|
const char *
|
|
GetName() const;
|
|
|
|
const char *
|
|
GetDisplayName() const;
|
|
|
|
const char *
|
|
GetMangledName () const;
|
|
|
|
lldb::SBInstructionList
|
|
GetInstructions (lldb::SBTarget target);
|
|
|
|
lldb::SBInstructionList
|
|
GetInstructions (lldb::SBTarget target, const char *flavor_string);
|
|
|
|
SBAddress
|
|
GetStartAddress ();
|
|
|
|
SBAddress
|
|
GetEndAddress ();
|
|
|
|
uint32_t
|
|
GetPrologueByteSize ();
|
|
|
|
SymbolType
|
|
GetType ();
|
|
|
|
bool
|
|
GetDescription (lldb::SBStream &description);
|
|
|
|
bool
|
|
IsExternal();
|
|
|
|
bool
|
|
IsSynthetic();
|
|
|
|
bool
|
|
operator == (const lldb::SBSymbol &rhs) const;
|
|
|
|
bool
|
|
operator != (const lldb::SBSymbol &rhs) const;
|
|
|
|
%pythoncode %{
|
|
def get_instructions_from_current_target (self):
|
|
return self.GetInstructions (target)
|
|
|
|
__swig_getmethods__["name"] = GetName
|
|
if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''')
|
|
|
|
__swig_getmethods__["mangled"] = GetMangledName
|
|
if _newclass: mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''')
|
|
|
|
__swig_getmethods__["type"] = GetType
|
|
if _newclass: type = property(GetType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSymbolType") that represents the type of this symbol.''')
|
|
|
|
__swig_getmethods__["addr"] = GetStartAddress
|
|
if _newclass: addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''')
|
|
|
|
__swig_getmethods__["end_addr"] = GetEndAddress
|
|
if _newclass: end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this symbol.''')
|
|
|
|
__swig_getmethods__["prologue_size"] = GetPrologueByteSize
|
|
if _newclass: prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
|
|
|
|
__swig_getmethods__["instructions"] = get_instructions_from_current_target
|
|
if _newclass: instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this symbol.''')
|
|
|
|
__swig_getmethods__["external"] = IsExternal
|
|
if _newclass: external = property(IsExternal, None, doc='''A read only property that returns a boolean value that indicates if this symbol is externally visiable (exported) from the module that contains it.''')
|
|
|
|
__swig_getmethods__["synthetic"] = IsSynthetic
|
|
if _newclass: synthetic = property(IsSynthetic, None, doc='''A read only property that returns a boolean value that indicates if this symbol was synthetically created from information in module that contains it.''')
|
|
|
|
|
|
%}
|
|
|
|
};
|
|
|
|
} // namespace lldb
|