| # This file was automatically generated by SWIG (http://www.swig.org). |
| # Version 4.0.1 |
| # |
| # Do not make changes to this file unless you know what you are doing--modify |
| # the SWIG interface file instead. |
| |
| """ |
| The lldb module contains the public APIs for Python binding. |
| |
| Some of the important classes are described here: |
| |
| * :py:class:`SBTarget`: Represents the target program running under the debugger. |
| * :py:class:`SBProcess`: Represents the process associated with the target program. |
| * :py:class:`SBThread`: Represents a thread of execution. :py:class:`SBProcess` contains SBThreads. |
| * :py:class:`SBFrame`: Represents one of the stack frames associated with a thread. :py:class:`SBThread` |
| contains SBFrame(s). |
| * :py:class:`SBSymbolContext`: A container that stores various debugger related info. |
| * :py:class:`SBValue`: Represents the value of a variable, a register, or an expression. |
| * :py:class:`SBModule`: Represents an executable image and its associated object and symbol |
| files. :py:class:`SBTarget` contains SBModule. |
| * :py:class:`SBBreakpoint`: Represents a logical breakpoint and its associated settings. |
| :py:class:`SBTarget` contains SBBreakpoints. |
| * :py:class:`SBSymbol`: Represents the symbol possibly associated with a stack frame. |
| * :py:class:`SBCompileUnit`: Represents a compilation unit, or compiled source file. |
| * :py:class:`SBFunction`: Represents a generic function, which can be inlined or not. |
| * :py:class:`SBBlock`: Represents a lexical block. :py:class:`SBFunction` contains SBBlocks. |
| * :py:class:`SBLineEntry`: Specifies an association with a contiguous range of instructions |
| and a source file location. :py:class:`SBCompileUnit` contains SBLineEntry. |
| |
| The different enums in the `lldb` module are described in :doc:`python_api_enums`. |
| |
| |
| """ |
| |
| from sys import version_info as _swig_python_version_info |
| if _swig_python_version_info < (2, 7, 0): |
| raise RuntimeError("Python 2.7 or later required") |
| |
| try: |
| # Try an absolute import first. If we're being loaded from lldb, |
| # _lldb should be a built-in module. |
| import _lldb |
| except ImportError: |
| # Relative import should work if we are being loaded by Python. |
| from . import _lldb |
| |
| try: |
| import builtins as __builtin__ |
| except ImportError: |
| import __builtin__ |
| |
| def _swig_repr(self): |
| try: |
| strthis = "proxy of " + self.this.__repr__() |
| except __builtin__.Exception: |
| strthis = "" |
| return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) |
| |
| |
| def _swig_setattr_nondynamic_instance_variable(set): |
| def set_instance_attr(self, name, value): |
| if name == "thisown": |
| self.this.own(value) |
| elif name == "this": |
| set(self, name, value) |
| elif hasattr(self, name) and isinstance(getattr(type(self), name), property): |
| set(self, name, value) |
| else: |
| raise AttributeError("You cannot add instance attributes to %s" % self) |
| return set_instance_attr |
| |
| |
| def _swig_setattr_nondynamic_class_variable(set): |
| def set_class_attr(cls, name, value): |
| if hasattr(cls, name) and not isinstance(getattr(cls, name), property): |
| set(cls, name, value) |
| else: |
| raise AttributeError("You cannot add class attributes to %s" % cls) |
| return set_class_attr |
| |
| |
| def _swig_add_metaclass(metaclass): |
| """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass""" |
| def wrapper(cls): |
| return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy()) |
| return wrapper |
| |
| |
| class _SwigNonDynamicMeta(type): |
| """Meta class to enforce nondynamic attributes (no new attributes) for a class""" |
| __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__) |
| |
| |
| |
| import uuid |
| import re |
| import os |
| |
| import six |
| |
| |
| #SWIG_VERSION is written as a single hex number, but the components of it are |
| #meant to be interpreted in decimal. So, 0x030012 is swig 3.0.12, and not |
| #3.0.18. |
| def _to_int(hex): |
| return hex // 0x10 % 0x10 * 10 + hex % 0x10 |
| swig_version = (_to_int(0x040001 // 0x10000), _to_int(0x040001 // 0x100), _to_int(0x040001)) |
| del _to_int |
| |
| |
| # =================================== |
| # Iterator for lldb container objects |
| # =================================== |
| def lldb_iter(obj, getsize, getelem): |
| """A generator adaptor to support iteration for lldb container objects.""" |
| size = getattr(obj, getsize) |
| elem = getattr(obj, getelem) |
| for i in range(size()): |
| yield elem(i) |
| |
| INT32_MAX = _lldb.INT32_MAX |
| |
| UINT32_MAX = _lldb.UINT32_MAX |
| |
| UINT64_MAX = _lldb.UINT64_MAX |
| |
| LLDB_GENERIC_ERROR = _lldb.LLDB_GENERIC_ERROR |
| |
| LLDB_INVALID_BREAK_ID = _lldb.LLDB_INVALID_BREAK_ID |
| |
| LLDB_DEFAULT_BREAK_SIZE = _lldb.LLDB_DEFAULT_BREAK_SIZE |
| |
| LLDB_INVALID_WATCH_ID = _lldb.LLDB_INVALID_WATCH_ID |
| |
| LLDB_WATCH_TYPE_READ = _lldb.LLDB_WATCH_TYPE_READ |
| |
| LLDB_WATCH_TYPE_WRITE = _lldb.LLDB_WATCH_TYPE_WRITE |
| |
| LLDB_REGNUM_GENERIC_PC = _lldb.LLDB_REGNUM_GENERIC_PC |
| |
| LLDB_REGNUM_GENERIC_SP = _lldb.LLDB_REGNUM_GENERIC_SP |
| |
| LLDB_REGNUM_GENERIC_FP = _lldb.LLDB_REGNUM_GENERIC_FP |
| |
| LLDB_REGNUM_GENERIC_RA = _lldb.LLDB_REGNUM_GENERIC_RA |
| |
| LLDB_REGNUM_GENERIC_FLAGS = _lldb.LLDB_REGNUM_GENERIC_FLAGS |
| |
| LLDB_REGNUM_GENERIC_ARG1 = _lldb.LLDB_REGNUM_GENERIC_ARG1 |
| |
| LLDB_REGNUM_GENERIC_ARG2 = _lldb.LLDB_REGNUM_GENERIC_ARG2 |
| |
| LLDB_REGNUM_GENERIC_ARG3 = _lldb.LLDB_REGNUM_GENERIC_ARG3 |
| |
| LLDB_REGNUM_GENERIC_ARG4 = _lldb.LLDB_REGNUM_GENERIC_ARG4 |
| |
| LLDB_REGNUM_GENERIC_ARG5 = _lldb.LLDB_REGNUM_GENERIC_ARG5 |
| |
| LLDB_REGNUM_GENERIC_ARG6 = _lldb.LLDB_REGNUM_GENERIC_ARG6 |
| |
| LLDB_REGNUM_GENERIC_ARG7 = _lldb.LLDB_REGNUM_GENERIC_ARG7 |
| |
| LLDB_REGNUM_GENERIC_ARG8 = _lldb.LLDB_REGNUM_GENERIC_ARG8 |
| |
| LLDB_INVALID_STOP_ID = _lldb.LLDB_INVALID_STOP_ID |
| |
| LLDB_INVALID_ADDRESS = _lldb.LLDB_INVALID_ADDRESS |
| |
| LLDB_INVALID_INDEX32 = _lldb.LLDB_INVALID_INDEX32 |
| |
| LLDB_INVALID_IVAR_OFFSET = _lldb.LLDB_INVALID_IVAR_OFFSET |
| |
| LLDB_INVALID_IMAGE_TOKEN = _lldb.LLDB_INVALID_IMAGE_TOKEN |
| |
| LLDB_INVALID_MODULE_VERSION = _lldb.LLDB_INVALID_MODULE_VERSION |
| |
| LLDB_INVALID_REGNUM = _lldb.LLDB_INVALID_REGNUM |
| |
| LLDB_INVALID_UID = _lldb.LLDB_INVALID_UID |
| |
| LLDB_INVALID_PROCESS_ID = _lldb.LLDB_INVALID_PROCESS_ID |
| |
| LLDB_INVALID_THREAD_ID = _lldb.LLDB_INVALID_THREAD_ID |
| |
| LLDB_INVALID_FRAME_ID = _lldb.LLDB_INVALID_FRAME_ID |
| |
| LLDB_INVALID_SIGNAL_NUMBER = _lldb.LLDB_INVALID_SIGNAL_NUMBER |
| |
| LLDB_INVALID_OFFSET = _lldb.LLDB_INVALID_OFFSET |
| |
| LLDB_INVALID_LINE_NUMBER = _lldb.LLDB_INVALID_LINE_NUMBER |
| |
| LLDB_INVALID_COLUMN_NUMBER = _lldb.LLDB_INVALID_COLUMN_NUMBER |
| |
| LLDB_INVALID_QUEUE_ID = _lldb.LLDB_INVALID_QUEUE_ID |
| |
| LLDB_ARCH_DEFAULT = _lldb.LLDB_ARCH_DEFAULT |
| |
| LLDB_ARCH_DEFAULT_32BIT = _lldb.LLDB_ARCH_DEFAULT_32BIT |
| |
| LLDB_ARCH_DEFAULT_64BIT = _lldb.LLDB_ARCH_DEFAULT_64BIT |
| |
| LLDB_INVALID_CPUTYPE = _lldb.LLDB_INVALID_CPUTYPE |
| |
| LLDB_MAX_NUM_OPTION_SETS = _lldb.LLDB_MAX_NUM_OPTION_SETS |
| |
| LLDB_OPT_SET_ALL = _lldb.LLDB_OPT_SET_ALL |
| |
| LLDB_OPT_SET_1 = _lldb.LLDB_OPT_SET_1 |
| |
| LLDB_OPT_SET_2 = _lldb.LLDB_OPT_SET_2 |
| |
| LLDB_OPT_SET_3 = _lldb.LLDB_OPT_SET_3 |
| |
| LLDB_OPT_SET_4 = _lldb.LLDB_OPT_SET_4 |
| |
| LLDB_OPT_SET_5 = _lldb.LLDB_OPT_SET_5 |
| |
| LLDB_OPT_SET_6 = _lldb.LLDB_OPT_SET_6 |
| |
| LLDB_OPT_SET_7 = _lldb.LLDB_OPT_SET_7 |
| |
| LLDB_OPT_SET_8 = _lldb.LLDB_OPT_SET_8 |
| |
| LLDB_OPT_SET_9 = _lldb.LLDB_OPT_SET_9 |
| |
| LLDB_OPT_SET_10 = _lldb.LLDB_OPT_SET_10 |
| |
| LLDB_OPT_SET_11 = _lldb.LLDB_OPT_SET_11 |
| |
| LLDB_OPT_SET_12 = _lldb.LLDB_OPT_SET_12 |
| |
| eStateInvalid = _lldb.eStateInvalid |
| |
| eStateUnloaded = _lldb.eStateUnloaded |
| |
| eStateConnected = _lldb.eStateConnected |
| |
| eStateAttaching = _lldb.eStateAttaching |
| |
| eStateLaunching = _lldb.eStateLaunching |
| |
| eStateStopped = _lldb.eStateStopped |
| |
| eStateRunning = _lldb.eStateRunning |
| |
| eStateStepping = _lldb.eStateStepping |
| |
| eStateCrashed = _lldb.eStateCrashed |
| |
| eStateDetached = _lldb.eStateDetached |
| |
| eStateExited = _lldb.eStateExited |
| |
| eStateSuspended = _lldb.eStateSuspended |
| |
| kLastStateType = _lldb.kLastStateType |
| |
| eLaunchFlagNone = _lldb.eLaunchFlagNone |
| |
| eLaunchFlagExec = _lldb.eLaunchFlagExec |
| |
| eLaunchFlagDebug = _lldb.eLaunchFlagDebug |
| |
| eLaunchFlagStopAtEntry = _lldb.eLaunchFlagStopAtEntry |
| |
| eLaunchFlagDisableASLR = _lldb.eLaunchFlagDisableASLR |
| |
| eLaunchFlagDisableSTDIO = _lldb.eLaunchFlagDisableSTDIO |
| |
| eLaunchFlagLaunchInTTY = _lldb.eLaunchFlagLaunchInTTY |
| |
| eLaunchFlagLaunchInShell = _lldb.eLaunchFlagLaunchInShell |
| |
| eLaunchFlagLaunchInSeparateProcessGroup = _lldb.eLaunchFlagLaunchInSeparateProcessGroup |
| |
| eLaunchFlagDontSetExitStatus = _lldb.eLaunchFlagDontSetExitStatus |
| |
| eLaunchFlagDetachOnError = _lldb.eLaunchFlagDetachOnError |
| |
| eLaunchFlagShellExpandArguments = _lldb.eLaunchFlagShellExpandArguments |
| |
| eLaunchFlagCloseTTYOnExit = _lldb.eLaunchFlagCloseTTYOnExit |
| |
| eLaunchFlagInheritTCCFromParent = _lldb.eLaunchFlagInheritTCCFromParent |
| |
| eOnlyThisThread = _lldb.eOnlyThisThread |
| |
| eAllThreads = _lldb.eAllThreads |
| |
| eOnlyDuringStepping = _lldb.eOnlyDuringStepping |
| |
| eByteOrderInvalid = _lldb.eByteOrderInvalid |
| |
| eByteOrderBig = _lldb.eByteOrderBig |
| |
| eByteOrderPDP = _lldb.eByteOrderPDP |
| |
| eByteOrderLittle = _lldb.eByteOrderLittle |
| |
| eEncodingInvalid = _lldb.eEncodingInvalid |
| |
| eEncodingUint = _lldb.eEncodingUint |
| |
| eEncodingSint = _lldb.eEncodingSint |
| |
| eEncodingIEEE754 = _lldb.eEncodingIEEE754 |
| |
| eEncodingVector = _lldb.eEncodingVector |
| |
| eFormatDefault = _lldb.eFormatDefault |
| |
| eFormatInvalid = _lldb.eFormatInvalid |
| |
| eFormatBoolean = _lldb.eFormatBoolean |
| |
| eFormatBinary = _lldb.eFormatBinary |
| |
| eFormatBytes = _lldb.eFormatBytes |
| |
| eFormatBytesWithASCII = _lldb.eFormatBytesWithASCII |
| |
| eFormatChar = _lldb.eFormatChar |
| |
| eFormatCharPrintable = _lldb.eFormatCharPrintable |
| |
| eFormatComplex = _lldb.eFormatComplex |
| |
| eFormatComplexFloat = _lldb.eFormatComplexFloat |
| |
| eFormatCString = _lldb.eFormatCString |
| |
| eFormatDecimal = _lldb.eFormatDecimal |
| |
| eFormatEnum = _lldb.eFormatEnum |
| |
| eFormatHex = _lldb.eFormatHex |
| |
| eFormatHexUppercase = _lldb.eFormatHexUppercase |
| |
| eFormatFloat = _lldb.eFormatFloat |
| |
| eFormatOctal = _lldb.eFormatOctal |
| |
| eFormatOSType = _lldb.eFormatOSType |
| |
| eFormatUnicode16 = _lldb.eFormatUnicode16 |
| |
| eFormatUnicode32 = _lldb.eFormatUnicode32 |
| |
| eFormatUnsigned = _lldb.eFormatUnsigned |
| |
| eFormatPointer = _lldb.eFormatPointer |
| |
| eFormatVectorOfChar = _lldb.eFormatVectorOfChar |
| |
| eFormatVectorOfSInt8 = _lldb.eFormatVectorOfSInt8 |
| |
| eFormatVectorOfUInt8 = _lldb.eFormatVectorOfUInt8 |
| |
| eFormatVectorOfSInt16 = _lldb.eFormatVectorOfSInt16 |
| |
| eFormatVectorOfUInt16 = _lldb.eFormatVectorOfUInt16 |
| |
| eFormatVectorOfSInt32 = _lldb.eFormatVectorOfSInt32 |
| |
| eFormatVectorOfUInt32 = _lldb.eFormatVectorOfUInt32 |
| |
| eFormatVectorOfSInt64 = _lldb.eFormatVectorOfSInt64 |
| |
| eFormatVectorOfUInt64 = _lldb.eFormatVectorOfUInt64 |
| |
| eFormatVectorOfFloat16 = _lldb.eFormatVectorOfFloat16 |
| |
| eFormatVectorOfFloat32 = _lldb.eFormatVectorOfFloat32 |
| |
| eFormatVectorOfFloat64 = _lldb.eFormatVectorOfFloat64 |
| |
| eFormatVectorOfUInt128 = _lldb.eFormatVectorOfUInt128 |
| |
| eFormatComplexInteger = _lldb.eFormatComplexInteger |
| |
| eFormatCharArray = _lldb.eFormatCharArray |
| |
| eFormatAddressInfo = _lldb.eFormatAddressInfo |
| |
| eFormatHexFloat = _lldb.eFormatHexFloat |
| |
| eFormatInstruction = _lldb.eFormatInstruction |
| |
| eFormatVoid = _lldb.eFormatVoid |
| |
| eFormatUnicode8 = _lldb.eFormatUnicode8 |
| |
| kNumFormats = _lldb.kNumFormats |
| |
| eDescriptionLevelBrief = _lldb.eDescriptionLevelBrief |
| |
| eDescriptionLevelFull = _lldb.eDescriptionLevelFull |
| |
| eDescriptionLevelVerbose = _lldb.eDescriptionLevelVerbose |
| |
| eDescriptionLevelInitial = _lldb.eDescriptionLevelInitial |
| |
| kNumDescriptionLevels = _lldb.kNumDescriptionLevels |
| |
| eScriptLanguageNone = _lldb.eScriptLanguageNone |
| |
| eScriptLanguagePython = _lldb.eScriptLanguagePython |
| |
| eScriptLanguageLua = _lldb.eScriptLanguageLua |
| |
| eScriptLanguageUnknown = _lldb.eScriptLanguageUnknown |
| |
| eScriptLanguageDefault = _lldb.eScriptLanguageDefault |
| |
| eRegisterKindEHFrame = _lldb.eRegisterKindEHFrame |
| |
| eRegisterKindDWARF = _lldb.eRegisterKindDWARF |
| |
| eRegisterKindGeneric = _lldb.eRegisterKindGeneric |
| |
| eRegisterKindProcessPlugin = _lldb.eRegisterKindProcessPlugin |
| |
| eRegisterKindLLDB = _lldb.eRegisterKindLLDB |
| |
| kNumRegisterKinds = _lldb.kNumRegisterKinds |
| |
| eStopReasonInvalid = _lldb.eStopReasonInvalid |
| |
| eStopReasonNone = _lldb.eStopReasonNone |
| |
| eStopReasonTrace = _lldb.eStopReasonTrace |
| |
| eStopReasonBreakpoint = _lldb.eStopReasonBreakpoint |
| |
| eStopReasonWatchpoint = _lldb.eStopReasonWatchpoint |
| |
| eStopReasonSignal = _lldb.eStopReasonSignal |
| |
| eStopReasonException = _lldb.eStopReasonException |
| |
| eStopReasonExec = _lldb.eStopReasonExec |
| |
| eStopReasonPlanComplete = _lldb.eStopReasonPlanComplete |
| |
| eStopReasonThreadExiting = _lldb.eStopReasonThreadExiting |
| |
| eStopReasonInstrumentation = _lldb.eStopReasonInstrumentation |
| |
| eStopReasonProcessorTrace = _lldb.eStopReasonProcessorTrace |
| |
| eStopReasonFork = _lldb.eStopReasonFork |
| |
| eStopReasonVFork = _lldb.eStopReasonVFork |
| |
| eStopReasonVForkDone = _lldb.eStopReasonVForkDone |
| |
| eReturnStatusInvalid = _lldb.eReturnStatusInvalid |
| |
| eReturnStatusSuccessFinishNoResult = _lldb.eReturnStatusSuccessFinishNoResult |
| |
| eReturnStatusSuccessFinishResult = _lldb.eReturnStatusSuccessFinishResult |
| |
| eReturnStatusSuccessContinuingNoResult = _lldb.eReturnStatusSuccessContinuingNoResult |
| |
| eReturnStatusSuccessContinuingResult = _lldb.eReturnStatusSuccessContinuingResult |
| |
| eReturnStatusStarted = _lldb.eReturnStatusStarted |
| |
| eReturnStatusFailed = _lldb.eReturnStatusFailed |
| |
| eReturnStatusQuit = _lldb.eReturnStatusQuit |
| |
| eExpressionCompleted = _lldb.eExpressionCompleted |
| |
| eExpressionSetupError = _lldb.eExpressionSetupError |
| |
| eExpressionParseError = _lldb.eExpressionParseError |
| |
| eExpressionDiscarded = _lldb.eExpressionDiscarded |
| |
| eExpressionInterrupted = _lldb.eExpressionInterrupted |
| |
| eExpressionHitBreakpoint = _lldb.eExpressionHitBreakpoint |
| |
| eExpressionTimedOut = _lldb.eExpressionTimedOut |
| |
| eExpressionResultUnavailable = _lldb.eExpressionResultUnavailable |
| |
| eExpressionStoppedForDebug = _lldb.eExpressionStoppedForDebug |
| |
| eExpressionThreadVanished = _lldb.eExpressionThreadVanished |
| |
| eSearchDepthInvalid = _lldb.eSearchDepthInvalid |
| |
| eSearchDepthTarget = _lldb.eSearchDepthTarget |
| |
| eSearchDepthModule = _lldb.eSearchDepthModule |
| |
| eSearchDepthCompUnit = _lldb.eSearchDepthCompUnit |
| |
| eSearchDepthFunction = _lldb.eSearchDepthFunction |
| |
| eSearchDepthBlock = _lldb.eSearchDepthBlock |
| |
| eSearchDepthAddress = _lldb.eSearchDepthAddress |
| |
| kLastSearchDepthKind = _lldb.kLastSearchDepthKind |
| |
| eConnectionStatusSuccess = _lldb.eConnectionStatusSuccess |
| |
| eConnectionStatusEndOfFile = _lldb.eConnectionStatusEndOfFile |
| |
| eConnectionStatusError = _lldb.eConnectionStatusError |
| |
| eConnectionStatusTimedOut = _lldb.eConnectionStatusTimedOut |
| |
| eConnectionStatusNoConnection = _lldb.eConnectionStatusNoConnection |
| |
| eConnectionStatusLostConnection = _lldb.eConnectionStatusLostConnection |
| |
| eConnectionStatusInterrupted = _lldb.eConnectionStatusInterrupted |
| |
| eErrorTypeInvalid = _lldb.eErrorTypeInvalid |
| |
| eErrorTypeGeneric = _lldb.eErrorTypeGeneric |
| |
| eErrorTypeMachKernel = _lldb.eErrorTypeMachKernel |
| |
| eErrorTypePOSIX = _lldb.eErrorTypePOSIX |
| |
| eErrorTypeExpression = _lldb.eErrorTypeExpression |
| |
| eErrorTypeWin32 = _lldb.eErrorTypeWin32 |
| |
| eValueTypeInvalid = _lldb.eValueTypeInvalid |
| |
| eValueTypeVariableGlobal = _lldb.eValueTypeVariableGlobal |
| |
| eValueTypeVariableStatic = _lldb.eValueTypeVariableStatic |
| |
| eValueTypeVariableArgument = _lldb.eValueTypeVariableArgument |
| |
| eValueTypeVariableLocal = _lldb.eValueTypeVariableLocal |
| |
| eValueTypeRegister = _lldb.eValueTypeRegister |
| |
| eValueTypeRegisterSet = _lldb.eValueTypeRegisterSet |
| |
| eValueTypeConstResult = _lldb.eValueTypeConstResult |
| |
| eValueTypeVariableThreadLocal = _lldb.eValueTypeVariableThreadLocal |
| |
| eInputReaderGranularityInvalid = _lldb.eInputReaderGranularityInvalid |
| |
| eInputReaderGranularityByte = _lldb.eInputReaderGranularityByte |
| |
| eInputReaderGranularityWord = _lldb.eInputReaderGranularityWord |
| |
| eInputReaderGranularityLine = _lldb.eInputReaderGranularityLine |
| |
| eInputReaderGranularityAll = _lldb.eInputReaderGranularityAll |
| |
| eSymbolContextTarget = _lldb.eSymbolContextTarget |
| |
| eSymbolContextModule = _lldb.eSymbolContextModule |
| |
| eSymbolContextCompUnit = _lldb.eSymbolContextCompUnit |
| |
| eSymbolContextFunction = _lldb.eSymbolContextFunction |
| |
| eSymbolContextBlock = _lldb.eSymbolContextBlock |
| |
| eSymbolContextLineEntry = _lldb.eSymbolContextLineEntry |
| |
| eSymbolContextSymbol = _lldb.eSymbolContextSymbol |
| |
| eSymbolContextEverything = _lldb.eSymbolContextEverything |
| |
| eSymbolContextVariable = _lldb.eSymbolContextVariable |
| |
| ePermissionsWritable = _lldb.ePermissionsWritable |
| |
| ePermissionsReadable = _lldb.ePermissionsReadable |
| |
| ePermissionsExecutable = _lldb.ePermissionsExecutable |
| |
| eInputReaderActivate = _lldb.eInputReaderActivate |
| |
| eInputReaderAsynchronousOutputWritten = _lldb.eInputReaderAsynchronousOutputWritten |
| |
| eInputReaderReactivate = _lldb.eInputReaderReactivate |
| |
| eInputReaderDeactivate = _lldb.eInputReaderDeactivate |
| |
| eInputReaderGotToken = _lldb.eInputReaderGotToken |
| |
| eInputReaderInterrupt = _lldb.eInputReaderInterrupt |
| |
| eInputReaderEndOfFile = _lldb.eInputReaderEndOfFile |
| |
| eInputReaderDone = _lldb.eInputReaderDone |
| |
| eBreakpointEventTypeInvalidType = _lldb.eBreakpointEventTypeInvalidType |
| |
| eBreakpointEventTypeAdded = _lldb.eBreakpointEventTypeAdded |
| |
| eBreakpointEventTypeRemoved = _lldb.eBreakpointEventTypeRemoved |
| |
| eBreakpointEventTypeLocationsAdded = _lldb.eBreakpointEventTypeLocationsAdded |
| |
| eBreakpointEventTypeLocationsRemoved = _lldb.eBreakpointEventTypeLocationsRemoved |
| |
| eBreakpointEventTypeLocationsResolved = _lldb.eBreakpointEventTypeLocationsResolved |
| |
| eBreakpointEventTypeEnabled = _lldb.eBreakpointEventTypeEnabled |
| |
| eBreakpointEventTypeDisabled = _lldb.eBreakpointEventTypeDisabled |
| |
| eBreakpointEventTypeCommandChanged = _lldb.eBreakpointEventTypeCommandChanged |
| |
| eBreakpointEventTypeConditionChanged = _lldb.eBreakpointEventTypeConditionChanged |
| |
| eBreakpointEventTypeIgnoreChanged = _lldb.eBreakpointEventTypeIgnoreChanged |
| |
| eBreakpointEventTypeThreadChanged = _lldb.eBreakpointEventTypeThreadChanged |
| |
| eBreakpointEventTypeAutoContinueChanged = _lldb.eBreakpointEventTypeAutoContinueChanged |
| |
| eWatchpointEventTypeInvalidType = _lldb.eWatchpointEventTypeInvalidType |
| |
| eWatchpointEventTypeAdded = _lldb.eWatchpointEventTypeAdded |
| |
| eWatchpointEventTypeRemoved = _lldb.eWatchpointEventTypeRemoved |
| |
| eWatchpointEventTypeEnabled = _lldb.eWatchpointEventTypeEnabled |
| |
| eWatchpointEventTypeDisabled = _lldb.eWatchpointEventTypeDisabled |
| |
| eWatchpointEventTypeCommandChanged = _lldb.eWatchpointEventTypeCommandChanged |
| |
| eWatchpointEventTypeConditionChanged = _lldb.eWatchpointEventTypeConditionChanged |
| |
| eWatchpointEventTypeIgnoreChanged = _lldb.eWatchpointEventTypeIgnoreChanged |
| |
| eWatchpointEventTypeThreadChanged = _lldb.eWatchpointEventTypeThreadChanged |
| |
| eWatchpointEventTypeTypeChanged = _lldb.eWatchpointEventTypeTypeChanged |
| |
| eLanguageTypeUnknown = _lldb.eLanguageTypeUnknown |
| |
| eLanguageTypeC89 = _lldb.eLanguageTypeC89 |
| |
| eLanguageTypeC = _lldb.eLanguageTypeC |
| |
| eLanguageTypeAda83 = _lldb.eLanguageTypeAda83 |
| |
| eLanguageTypeC_plus_plus = _lldb.eLanguageTypeC_plus_plus |
| |
| eLanguageTypeCobol74 = _lldb.eLanguageTypeCobol74 |
| |
| eLanguageTypeCobol85 = _lldb.eLanguageTypeCobol85 |
| |
| eLanguageTypeFortran77 = _lldb.eLanguageTypeFortran77 |
| |
| eLanguageTypeFortran90 = _lldb.eLanguageTypeFortran90 |
| |
| eLanguageTypePascal83 = _lldb.eLanguageTypePascal83 |
| |
| eLanguageTypeModula2 = _lldb.eLanguageTypeModula2 |
| |
| eLanguageTypeJava = _lldb.eLanguageTypeJava |
| |
| eLanguageTypeC99 = _lldb.eLanguageTypeC99 |
| |
| eLanguageTypeAda95 = _lldb.eLanguageTypeAda95 |
| |
| eLanguageTypeFortran95 = _lldb.eLanguageTypeFortran95 |
| |
| eLanguageTypePLI = _lldb.eLanguageTypePLI |
| |
| eLanguageTypeObjC = _lldb.eLanguageTypeObjC |
| |
| eLanguageTypeObjC_plus_plus = _lldb.eLanguageTypeObjC_plus_plus |
| |
| eLanguageTypeUPC = _lldb.eLanguageTypeUPC |
| |
| eLanguageTypeD = _lldb.eLanguageTypeD |
| |
| eLanguageTypePython = _lldb.eLanguageTypePython |
| |
| eLanguageTypeOpenCL = _lldb.eLanguageTypeOpenCL |
| |
| eLanguageTypeGo = _lldb.eLanguageTypeGo |
| |
| eLanguageTypeModula3 = _lldb.eLanguageTypeModula3 |
| |
| eLanguageTypeHaskell = _lldb.eLanguageTypeHaskell |
| |
| eLanguageTypeC_plus_plus_03 = _lldb.eLanguageTypeC_plus_plus_03 |
| |
| eLanguageTypeC_plus_plus_11 = _lldb.eLanguageTypeC_plus_plus_11 |
| |
| eLanguageTypeOCaml = _lldb.eLanguageTypeOCaml |
| |
| eLanguageTypeRust = _lldb.eLanguageTypeRust |
| |
| eLanguageTypeC11 = _lldb.eLanguageTypeC11 |
| |
| eLanguageTypeSwift = _lldb.eLanguageTypeSwift |
| |
| eLanguageTypeJulia = _lldb.eLanguageTypeJulia |
| |
| eLanguageTypeDylan = _lldb.eLanguageTypeDylan |
| |
| eLanguageTypeC_plus_plus_14 = _lldb.eLanguageTypeC_plus_plus_14 |
| |
| eLanguageTypeFortran03 = _lldb.eLanguageTypeFortran03 |
| |
| eLanguageTypeFortran08 = _lldb.eLanguageTypeFortran08 |
| |
| eLanguageTypeMipsAssembler = _lldb.eLanguageTypeMipsAssembler |
| |
| eLanguageTypeExtRenderScript = _lldb.eLanguageTypeExtRenderScript |
| |
| eNumLanguageTypes = _lldb.eNumLanguageTypes |
| |
| eInstrumentationRuntimeTypeAddressSanitizer = _lldb.eInstrumentationRuntimeTypeAddressSanitizer |
| |
| eInstrumentationRuntimeTypeThreadSanitizer = _lldb.eInstrumentationRuntimeTypeThreadSanitizer |
| |
| eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer = _lldb.eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer |
| |
| eInstrumentationRuntimeTypeMainThreadChecker = _lldb.eInstrumentationRuntimeTypeMainThreadChecker |
| |
| eInstrumentationRuntimeTypeSwiftRuntimeReporting = _lldb.eInstrumentationRuntimeTypeSwiftRuntimeReporting |
| |
| eNumInstrumentationRuntimeTypes = _lldb.eNumInstrumentationRuntimeTypes |
| |
| eNoDynamicValues = _lldb.eNoDynamicValues |
| |
| eDynamicCanRunTarget = _lldb.eDynamicCanRunTarget |
| |
| eDynamicDontRunTarget = _lldb.eDynamicDontRunTarget |
| |
| eStopShowColumnAnsiOrCaret = _lldb.eStopShowColumnAnsiOrCaret |
| |
| eStopShowColumnAnsi = _lldb.eStopShowColumnAnsi |
| |
| eStopShowColumnCaret = _lldb.eStopShowColumnCaret |
| |
| eStopShowColumnNone = _lldb.eStopShowColumnNone |
| |
| eAccessNone = _lldb.eAccessNone |
| |
| eAccessPublic = _lldb.eAccessPublic |
| |
| eAccessPrivate = _lldb.eAccessPrivate |
| |
| eAccessProtected = _lldb.eAccessProtected |
| |
| eAccessPackage = _lldb.eAccessPackage |
| |
| eArgTypeAddress = _lldb.eArgTypeAddress |
| |
| eArgTypeAddressOrExpression = _lldb.eArgTypeAddressOrExpression |
| |
| eArgTypeAliasName = _lldb.eArgTypeAliasName |
| |
| eArgTypeAliasOptions = _lldb.eArgTypeAliasOptions |
| |
| eArgTypeArchitecture = _lldb.eArgTypeArchitecture |
| |
| eArgTypeBoolean = _lldb.eArgTypeBoolean |
| |
| eArgTypeBreakpointID = _lldb.eArgTypeBreakpointID |
| |
| eArgTypeBreakpointIDRange = _lldb.eArgTypeBreakpointIDRange |
| |
| eArgTypeBreakpointName = _lldb.eArgTypeBreakpointName |
| |
| eArgTypeByteSize = _lldb.eArgTypeByteSize |
| |
| eArgTypeClassName = _lldb.eArgTypeClassName |
| |
| eArgTypeCommandName = _lldb.eArgTypeCommandName |
| |
| eArgTypeCount = _lldb.eArgTypeCount |
| |
| eArgTypeDescriptionVerbosity = _lldb.eArgTypeDescriptionVerbosity |
| |
| eArgTypeDirectoryName = _lldb.eArgTypeDirectoryName |
| |
| eArgTypeDisassemblyFlavor = _lldb.eArgTypeDisassemblyFlavor |
| |
| eArgTypeEndAddress = _lldb.eArgTypeEndAddress |
| |
| eArgTypeExpression = _lldb.eArgTypeExpression |
| |
| eArgTypeExpressionPath = _lldb.eArgTypeExpressionPath |
| |
| eArgTypeExprFormat = _lldb.eArgTypeExprFormat |
| |
| eArgTypeFileLineColumn = _lldb.eArgTypeFileLineColumn |
| |
| eArgTypeFilename = _lldb.eArgTypeFilename |
| |
| eArgTypeFormat = _lldb.eArgTypeFormat |
| |
| eArgTypeFrameIndex = _lldb.eArgTypeFrameIndex |
| |
| eArgTypeFullName = _lldb.eArgTypeFullName |
| |
| eArgTypeFunctionName = _lldb.eArgTypeFunctionName |
| |
| eArgTypeFunctionOrSymbol = _lldb.eArgTypeFunctionOrSymbol |
| |
| eArgTypeGDBFormat = _lldb.eArgTypeGDBFormat |
| |
| eArgTypeHelpText = _lldb.eArgTypeHelpText |
| |
| eArgTypeIndex = _lldb.eArgTypeIndex |
| |
| eArgTypeLanguage = _lldb.eArgTypeLanguage |
| |
| eArgTypeLineNum = _lldb.eArgTypeLineNum |
| |
| eArgTypeLogCategory = _lldb.eArgTypeLogCategory |
| |
| eArgTypeLogChannel = _lldb.eArgTypeLogChannel |
| |
| eArgTypeMethod = _lldb.eArgTypeMethod |
| |
| eArgTypeName = _lldb.eArgTypeName |
| |
| eArgTypeNewPathPrefix = _lldb.eArgTypeNewPathPrefix |
| |
| eArgTypeNumLines = _lldb.eArgTypeNumLines |
| |
| eArgTypeNumberPerLine = _lldb.eArgTypeNumberPerLine |
| |
| eArgTypeOffset = _lldb.eArgTypeOffset |
| |
| eArgTypeOldPathPrefix = _lldb.eArgTypeOldPathPrefix |
| |
| eArgTypeOneLiner = _lldb.eArgTypeOneLiner |
| |
| eArgTypePath = _lldb.eArgTypePath |
| |
| eArgTypePermissionsNumber = _lldb.eArgTypePermissionsNumber |
| |
| eArgTypePermissionsString = _lldb.eArgTypePermissionsString |
| |
| eArgTypePid = _lldb.eArgTypePid |
| |
| eArgTypePlugin = _lldb.eArgTypePlugin |
| |
| eArgTypeProcessName = _lldb.eArgTypeProcessName |
| |
| eArgTypePythonClass = _lldb.eArgTypePythonClass |
| |
| eArgTypePythonFunction = _lldb.eArgTypePythonFunction |
| |
| eArgTypePythonScript = _lldb.eArgTypePythonScript |
| |
| eArgTypeQueueName = _lldb.eArgTypeQueueName |
| |
| eArgTypeRegisterName = _lldb.eArgTypeRegisterName |
| |
| eArgTypeRegularExpression = _lldb.eArgTypeRegularExpression |
| |
| eArgTypeRunArgs = _lldb.eArgTypeRunArgs |
| |
| eArgTypeRunMode = _lldb.eArgTypeRunMode |
| |
| eArgTypeScriptedCommandSynchronicity = _lldb.eArgTypeScriptedCommandSynchronicity |
| |
| eArgTypeScriptLang = _lldb.eArgTypeScriptLang |
| |
| eArgTypeSearchWord = _lldb.eArgTypeSearchWord |
| |
| eArgTypeSelector = _lldb.eArgTypeSelector |
| |
| eArgTypeSettingIndex = _lldb.eArgTypeSettingIndex |
| |
| eArgTypeSettingKey = _lldb.eArgTypeSettingKey |
| |
| eArgTypeSettingPrefix = _lldb.eArgTypeSettingPrefix |
| |
| eArgTypeSettingVariableName = _lldb.eArgTypeSettingVariableName |
| |
| eArgTypeShlibName = _lldb.eArgTypeShlibName |
| |
| eArgTypeSourceFile = _lldb.eArgTypeSourceFile |
| |
| eArgTypeSortOrder = _lldb.eArgTypeSortOrder |
| |
| eArgTypeStartAddress = _lldb.eArgTypeStartAddress |
| |
| eArgTypeSummaryString = _lldb.eArgTypeSummaryString |
| |
| eArgTypeSymbol = _lldb.eArgTypeSymbol |
| |
| eArgTypeThreadID = _lldb.eArgTypeThreadID |
| |
| eArgTypeThreadIndex = _lldb.eArgTypeThreadIndex |
| |
| eArgTypeThreadName = _lldb.eArgTypeThreadName |
| |
| eArgTypeTypeName = _lldb.eArgTypeTypeName |
| |
| eArgTypeUnsignedInteger = _lldb.eArgTypeUnsignedInteger |
| |
| eArgTypeUnixSignal = _lldb.eArgTypeUnixSignal |
| |
| eArgTypeVarName = _lldb.eArgTypeVarName |
| |
| eArgTypeValue = _lldb.eArgTypeValue |
| |
| eArgTypeWidth = _lldb.eArgTypeWidth |
| |
| eArgTypeNone = _lldb.eArgTypeNone |
| |
| eArgTypePlatform = _lldb.eArgTypePlatform |
| |
| eArgTypeWatchpointID = _lldb.eArgTypeWatchpointID |
| |
| eArgTypeWatchpointIDRange = _lldb.eArgTypeWatchpointIDRange |
| |
| eArgTypeWatchType = _lldb.eArgTypeWatchType |
| |
| eArgRawInput = _lldb.eArgRawInput |
| |
| eArgTypeCommand = _lldb.eArgTypeCommand |
| |
| eArgTypeColumnNum = _lldb.eArgTypeColumnNum |
| |
| eArgTypeModuleUUID = _lldb.eArgTypeModuleUUID |
| |
| eArgTypeSaveCoreStyle = _lldb.eArgTypeSaveCoreStyle |
| |
| eArgTypeLastArg = _lldb.eArgTypeLastArg |
| |
| eSymbolTypeAny = _lldb.eSymbolTypeAny |
| |
| eSymbolTypeInvalid = _lldb.eSymbolTypeInvalid |
| |
| eSymbolTypeAbsolute = _lldb.eSymbolTypeAbsolute |
| |
| eSymbolTypeCode = _lldb.eSymbolTypeCode |
| |
| eSymbolTypeResolver = _lldb.eSymbolTypeResolver |
| |
| eSymbolTypeData = _lldb.eSymbolTypeData |
| |
| eSymbolTypeTrampoline = _lldb.eSymbolTypeTrampoline |
| |
| eSymbolTypeRuntime = _lldb.eSymbolTypeRuntime |
| |
| eSymbolTypeException = _lldb.eSymbolTypeException |
| |
| eSymbolTypeSourceFile = _lldb.eSymbolTypeSourceFile |
| |
| eSymbolTypeHeaderFile = _lldb.eSymbolTypeHeaderFile |
| |
| eSymbolTypeObjectFile = _lldb.eSymbolTypeObjectFile |
| |
| eSymbolTypeCommonBlock = _lldb.eSymbolTypeCommonBlock |
| |
| eSymbolTypeBlock = _lldb.eSymbolTypeBlock |
| |
| eSymbolTypeLocal = _lldb.eSymbolTypeLocal |
| |
| eSymbolTypeParam = _lldb.eSymbolTypeParam |
| |
| eSymbolTypeVariable = _lldb.eSymbolTypeVariable |
| |
| eSymbolTypeVariableType = _lldb.eSymbolTypeVariableType |
| |
| eSymbolTypeLineEntry = _lldb.eSymbolTypeLineEntry |
| |
| eSymbolTypeLineHeader = _lldb.eSymbolTypeLineHeader |
| |
| eSymbolTypeScopeBegin = _lldb.eSymbolTypeScopeBegin |
| |
| eSymbolTypeScopeEnd = _lldb.eSymbolTypeScopeEnd |
| |
| eSymbolTypeAdditional = _lldb.eSymbolTypeAdditional |
| |
| eSymbolTypeCompiler = _lldb.eSymbolTypeCompiler |
| |
| eSymbolTypeInstrumentation = _lldb.eSymbolTypeInstrumentation |
| |
| eSymbolTypeUndefined = _lldb.eSymbolTypeUndefined |
| |
| eSymbolTypeObjCClass = _lldb.eSymbolTypeObjCClass |
| |
| eSymbolTypeObjCMetaClass = _lldb.eSymbolTypeObjCMetaClass |
| |
| eSymbolTypeObjCIVar = _lldb.eSymbolTypeObjCIVar |
| |
| eSymbolTypeReExported = _lldb.eSymbolTypeReExported |
| |
| eSectionTypeInvalid = _lldb.eSectionTypeInvalid |
| |
| eSectionTypeCode = _lldb.eSectionTypeCode |
| |
| eSectionTypeContainer = _lldb.eSectionTypeContainer |
| |
| eSectionTypeData = _lldb.eSectionTypeData |
| |
| eSectionTypeDataCString = _lldb.eSectionTypeDataCString |
| |
| eSectionTypeDataCStringPointers = _lldb.eSectionTypeDataCStringPointers |
| |
| eSectionTypeDataSymbolAddress = _lldb.eSectionTypeDataSymbolAddress |
| |
| eSectionTypeData4 = _lldb.eSectionTypeData4 |
| |
| eSectionTypeData8 = _lldb.eSectionTypeData8 |
| |
| eSectionTypeData16 = _lldb.eSectionTypeData16 |
| |
| eSectionTypeDataPointers = _lldb.eSectionTypeDataPointers |
| |
| eSectionTypeDebug = _lldb.eSectionTypeDebug |
| |
| eSectionTypeZeroFill = _lldb.eSectionTypeZeroFill |
| |
| eSectionTypeDataObjCMessageRefs = _lldb.eSectionTypeDataObjCMessageRefs |
| |
| eSectionTypeDataObjCCFStrings = _lldb.eSectionTypeDataObjCCFStrings |
| |
| eSectionTypeDWARFDebugAbbrev = _lldb.eSectionTypeDWARFDebugAbbrev |
| |
| eSectionTypeDWARFDebugAddr = _lldb.eSectionTypeDWARFDebugAddr |
| |
| eSectionTypeDWARFDebugAranges = _lldb.eSectionTypeDWARFDebugAranges |
| |
| eSectionTypeDWARFDebugCuIndex = _lldb.eSectionTypeDWARFDebugCuIndex |
| |
| eSectionTypeDWARFDebugFrame = _lldb.eSectionTypeDWARFDebugFrame |
| |
| eSectionTypeDWARFDebugInfo = _lldb.eSectionTypeDWARFDebugInfo |
| |
| eSectionTypeDWARFDebugLine = _lldb.eSectionTypeDWARFDebugLine |
| |
| eSectionTypeDWARFDebugLoc = _lldb.eSectionTypeDWARFDebugLoc |
| |
| eSectionTypeDWARFDebugMacInfo = _lldb.eSectionTypeDWARFDebugMacInfo |
| |
| eSectionTypeDWARFDebugMacro = _lldb.eSectionTypeDWARFDebugMacro |
| |
| eSectionTypeDWARFDebugPubNames = _lldb.eSectionTypeDWARFDebugPubNames |
| |
| eSectionTypeDWARFDebugPubTypes = _lldb.eSectionTypeDWARFDebugPubTypes |
| |
| eSectionTypeDWARFDebugRanges = _lldb.eSectionTypeDWARFDebugRanges |
| |
| eSectionTypeDWARFDebugStr = _lldb.eSectionTypeDWARFDebugStr |
| |
| eSectionTypeDWARFDebugStrOffsets = _lldb.eSectionTypeDWARFDebugStrOffsets |
| |
| eSectionTypeDWARFAppleNames = _lldb.eSectionTypeDWARFAppleNames |
| |
| eSectionTypeDWARFAppleTypes = _lldb.eSectionTypeDWARFAppleTypes |
| |
| eSectionTypeDWARFAppleNamespaces = _lldb.eSectionTypeDWARFAppleNamespaces |
| |
| eSectionTypeDWARFAppleObjC = _lldb.eSectionTypeDWARFAppleObjC |
| |
| eSectionTypeELFSymbolTable = _lldb.eSectionTypeELFSymbolTable |
| |
| eSectionTypeELFDynamicSymbols = _lldb.eSectionTypeELFDynamicSymbols |
| |
| eSectionTypeELFRelocationEntries = _lldb.eSectionTypeELFRelocationEntries |
| |
| eSectionTypeELFDynamicLinkInfo = _lldb.eSectionTypeELFDynamicLinkInfo |
| |
| eSectionTypeEHFrame = _lldb.eSectionTypeEHFrame |
| |
| eSectionTypeARMexidx = _lldb.eSectionTypeARMexidx |
| |
| eSectionTypeARMextab = _lldb.eSectionTypeARMextab |
| |
| eSectionTypeCompactUnwind = _lldb.eSectionTypeCompactUnwind |
| |
| eSectionTypeGoSymtab = _lldb.eSectionTypeGoSymtab |
| |
| eSectionTypeAbsoluteAddress = _lldb.eSectionTypeAbsoluteAddress |
| |
| eSectionTypeDWARFGNUDebugAltLink = _lldb.eSectionTypeDWARFGNUDebugAltLink |
| |
| eSectionTypeDWARFDebugTypes = _lldb.eSectionTypeDWARFDebugTypes |
| |
| eSectionTypeDWARFDebugNames = _lldb.eSectionTypeDWARFDebugNames |
| |
| eSectionTypeOther = _lldb.eSectionTypeOther |
| |
| eSectionTypeDWARFDebugLineStr = _lldb.eSectionTypeDWARFDebugLineStr |
| |
| eSectionTypeDWARFDebugRngLists = _lldb.eSectionTypeDWARFDebugRngLists |
| |
| eSectionTypeDWARFDebugLocLists = _lldb.eSectionTypeDWARFDebugLocLists |
| |
| eSectionTypeDWARFDebugAbbrevDwo = _lldb.eSectionTypeDWARFDebugAbbrevDwo |
| |
| eSectionTypeDWARFDebugInfoDwo = _lldb.eSectionTypeDWARFDebugInfoDwo |
| |
| eSectionTypeDWARFDebugStrDwo = _lldb.eSectionTypeDWARFDebugStrDwo |
| |
| eSectionTypeDWARFDebugStrOffsetsDwo = _lldb.eSectionTypeDWARFDebugStrOffsetsDwo |
| |
| eSectionTypeDWARFDebugTypesDwo = _lldb.eSectionTypeDWARFDebugTypesDwo |
| |
| eSectionTypeDWARFDebugRngListsDwo = _lldb.eSectionTypeDWARFDebugRngListsDwo |
| |
| eSectionTypeDWARFDebugLocDwo = _lldb.eSectionTypeDWARFDebugLocDwo |
| |
| eSectionTypeDWARFDebugLocListsDwo = _lldb.eSectionTypeDWARFDebugLocListsDwo |
| |
| eSectionTypeDWARFDebugTuIndex = _lldb.eSectionTypeDWARFDebugTuIndex |
| |
| eEmulateInstructionOptionNone = _lldb.eEmulateInstructionOptionNone |
| |
| eEmulateInstructionOptionAutoAdvancePC = _lldb.eEmulateInstructionOptionAutoAdvancePC |
| |
| eEmulateInstructionOptionIgnoreConditions = _lldb.eEmulateInstructionOptionIgnoreConditions |
| |
| eFunctionNameTypeNone = _lldb.eFunctionNameTypeNone |
| |
| eFunctionNameTypeAuto = _lldb.eFunctionNameTypeAuto |
| |
| eFunctionNameTypeFull = _lldb.eFunctionNameTypeFull |
| |
| eFunctionNameTypeBase = _lldb.eFunctionNameTypeBase |
| |
| eFunctionNameTypeMethod = _lldb.eFunctionNameTypeMethod |
| |
| eFunctionNameTypeSelector = _lldb.eFunctionNameTypeSelector |
| |
| eFunctionNameTypeAny = _lldb.eFunctionNameTypeAny |
| |
| eBasicTypeInvalid = _lldb.eBasicTypeInvalid |
| |
| eBasicTypeVoid = _lldb.eBasicTypeVoid |
| |
| eBasicTypeChar = _lldb.eBasicTypeChar |
| |
| eBasicTypeSignedChar = _lldb.eBasicTypeSignedChar |
| |
| eBasicTypeUnsignedChar = _lldb.eBasicTypeUnsignedChar |
| |
| eBasicTypeWChar = _lldb.eBasicTypeWChar |
| |
| eBasicTypeSignedWChar = _lldb.eBasicTypeSignedWChar |
| |
| eBasicTypeUnsignedWChar = _lldb.eBasicTypeUnsignedWChar |
| |
| eBasicTypeChar16 = _lldb.eBasicTypeChar16 |
| |
| eBasicTypeChar32 = _lldb.eBasicTypeChar32 |
| |
| eBasicTypeShort = _lldb.eBasicTypeShort |
| |
| eBasicTypeUnsignedShort = _lldb.eBasicTypeUnsignedShort |
| |
| eBasicTypeInt = _lldb.eBasicTypeInt |
| |
| eBasicTypeUnsignedInt = _lldb.eBasicTypeUnsignedInt |
| |
| eBasicTypeLong = _lldb.eBasicTypeLong |
| |
| eBasicTypeUnsignedLong = _lldb.eBasicTypeUnsignedLong |
| |
| eBasicTypeLongLong = _lldb.eBasicTypeLongLong |
| |
| eBasicTypeUnsignedLongLong = _lldb.eBasicTypeUnsignedLongLong |
| |
| eBasicTypeInt128 = _lldb.eBasicTypeInt128 |
| |
| eBasicTypeUnsignedInt128 = _lldb.eBasicTypeUnsignedInt128 |
| |
| eBasicTypeBool = _lldb.eBasicTypeBool |
| |
| eBasicTypeHalf = _lldb.eBasicTypeHalf |
| |
| eBasicTypeFloat = _lldb.eBasicTypeFloat |
| |
| eBasicTypeDouble = _lldb.eBasicTypeDouble |
| |
| eBasicTypeLongDouble = _lldb.eBasicTypeLongDouble |
| |
| eBasicTypeFloatComplex = _lldb.eBasicTypeFloatComplex |
| |
| eBasicTypeDoubleComplex = _lldb.eBasicTypeDoubleComplex |
| |
| eBasicTypeLongDoubleComplex = _lldb.eBasicTypeLongDoubleComplex |
| |
| eBasicTypeObjCID = _lldb.eBasicTypeObjCID |
| |
| eBasicTypeObjCClass = _lldb.eBasicTypeObjCClass |
| |
| eBasicTypeObjCSel = _lldb.eBasicTypeObjCSel |
| |
| eBasicTypeNullPtr = _lldb.eBasicTypeNullPtr |
| |
| eBasicTypeOther = _lldb.eBasicTypeOther |
| |
| eTraceTypeNone = _lldb.eTraceTypeNone |
| |
| eTraceTypeProcessorTrace = _lldb.eTraceTypeProcessorTrace |
| |
| eStructuredDataTypeInvalid = _lldb.eStructuredDataTypeInvalid |
| |
| eStructuredDataTypeNull = _lldb.eStructuredDataTypeNull |
| |
| eStructuredDataTypeGeneric = _lldb.eStructuredDataTypeGeneric |
| |
| eStructuredDataTypeArray = _lldb.eStructuredDataTypeArray |
| |
| eStructuredDataTypeInteger = _lldb.eStructuredDataTypeInteger |
| |
| eStructuredDataTypeFloat = _lldb.eStructuredDataTypeFloat |
| |
| eStructuredDataTypeBoolean = _lldb.eStructuredDataTypeBoolean |
| |
| eStructuredDataTypeString = _lldb.eStructuredDataTypeString |
| |
| eStructuredDataTypeDictionary = _lldb.eStructuredDataTypeDictionary |
| |
| eTypeClassInvalid = _lldb.eTypeClassInvalid |
| |
| eTypeClassArray = _lldb.eTypeClassArray |
| |
| eTypeClassBlockPointer = _lldb.eTypeClassBlockPointer |
| |
| eTypeClassBuiltin = _lldb.eTypeClassBuiltin |
| |
| eTypeClassClass = _lldb.eTypeClassClass |
| |
| eTypeClassComplexFloat = _lldb.eTypeClassComplexFloat |
| |
| eTypeClassComplexInteger = _lldb.eTypeClassComplexInteger |
| |
| eTypeClassEnumeration = _lldb.eTypeClassEnumeration |
| |
| eTypeClassFunction = _lldb.eTypeClassFunction |
| |
| eTypeClassMemberPointer = _lldb.eTypeClassMemberPointer |
| |
| eTypeClassObjCObject = _lldb.eTypeClassObjCObject |
| |
| eTypeClassObjCInterface = _lldb.eTypeClassObjCInterface |
| |
| eTypeClassObjCObjectPointer = _lldb.eTypeClassObjCObjectPointer |
| |
| eTypeClassPointer = _lldb.eTypeClassPointer |
| |
| eTypeClassReference = _lldb.eTypeClassReference |
| |
| eTypeClassStruct = _lldb.eTypeClassStruct |
| |
| eTypeClassTypedef = _lldb.eTypeClassTypedef |
| |
| eTypeClassUnion = _lldb.eTypeClassUnion |
| |
| eTypeClassVector = _lldb.eTypeClassVector |
| |
| eTypeClassOther = _lldb.eTypeClassOther |
| |
| eTypeClassAny = _lldb.eTypeClassAny |
| |
| eTemplateArgumentKindNull = _lldb.eTemplateArgumentKindNull |
| |
| eTemplateArgumentKindType = _lldb.eTemplateArgumentKindType |
| |
| eTemplateArgumentKindDeclaration = _lldb.eTemplateArgumentKindDeclaration |
| |
| eTemplateArgumentKindIntegral = _lldb.eTemplateArgumentKindIntegral |
| |
| eTemplateArgumentKindTemplate = _lldb.eTemplateArgumentKindTemplate |
| |
| eTemplateArgumentKindTemplateExpansion = _lldb.eTemplateArgumentKindTemplateExpansion |
| |
| eTemplateArgumentKindExpression = _lldb.eTemplateArgumentKindExpression |
| |
| eTemplateArgumentKindPack = _lldb.eTemplateArgumentKindPack |
| |
| eTemplateArgumentKindNullPtr = _lldb.eTemplateArgumentKindNullPtr |
| |
| eTypeOptionNone = _lldb.eTypeOptionNone |
| |
| eTypeOptionCascade = _lldb.eTypeOptionCascade |
| |
| eTypeOptionSkipPointers = _lldb.eTypeOptionSkipPointers |
| |
| eTypeOptionSkipReferences = _lldb.eTypeOptionSkipReferences |
| |
| eTypeOptionHideChildren = _lldb.eTypeOptionHideChildren |
| |
| eTypeOptionHideValue = _lldb.eTypeOptionHideValue |
| |
| eTypeOptionShowOneLiner = _lldb.eTypeOptionShowOneLiner |
| |
| eTypeOptionHideNames = _lldb.eTypeOptionHideNames |
| |
| eTypeOptionNonCacheable = _lldb.eTypeOptionNonCacheable |
| |
| eTypeOptionHideEmptyAggregates = _lldb.eTypeOptionHideEmptyAggregates |
| |
| eTypeOptionFrontEndWantsDereference = _lldb.eTypeOptionFrontEndWantsDereference |
| |
| eFrameCompareInvalid = _lldb.eFrameCompareInvalid |
| |
| eFrameCompareUnknown = _lldb.eFrameCompareUnknown |
| |
| eFrameCompareEqual = _lldb.eFrameCompareEqual |
| |
| eFrameCompareSameParent = _lldb.eFrameCompareSameParent |
| |
| eFrameCompareYounger = _lldb.eFrameCompareYounger |
| |
| eFrameCompareOlder = _lldb.eFrameCompareOlder |
| |
| eFilePermissionsUserRead = _lldb.eFilePermissionsUserRead |
| |
| eFilePermissionsUserWrite = _lldb.eFilePermissionsUserWrite |
| |
| eFilePermissionsUserExecute = _lldb.eFilePermissionsUserExecute |
| |
| eFilePermissionsGroupRead = _lldb.eFilePermissionsGroupRead |
| |
| eFilePermissionsGroupWrite = _lldb.eFilePermissionsGroupWrite |
| |
| eFilePermissionsGroupExecute = _lldb.eFilePermissionsGroupExecute |
| |
| eFilePermissionsWorldRead = _lldb.eFilePermissionsWorldRead |
| |
| eFilePermissionsWorldWrite = _lldb.eFilePermissionsWorldWrite |
| |
| eFilePermissionsWorldExecute = _lldb.eFilePermissionsWorldExecute |
| |
| eFilePermissionsUserRW = _lldb.eFilePermissionsUserRW |
| |
| eFileFilePermissionsUserRX = _lldb.eFileFilePermissionsUserRX |
| |
| eFilePermissionsUserRWX = _lldb.eFilePermissionsUserRWX |
| |
| eFilePermissionsGroupRW = _lldb.eFilePermissionsGroupRW |
| |
| eFilePermissionsGroupRX = _lldb.eFilePermissionsGroupRX |
| |
| eFilePermissionsGroupRWX = _lldb.eFilePermissionsGroupRWX |
| |
| eFilePermissionsWorldRW = _lldb.eFilePermissionsWorldRW |
| |
| eFilePermissionsWorldRX = _lldb.eFilePermissionsWorldRX |
| |
| eFilePermissionsWorldRWX = _lldb.eFilePermissionsWorldRWX |
| |
| eFilePermissionsEveryoneR = _lldb.eFilePermissionsEveryoneR |
| |
| eFilePermissionsEveryoneW = _lldb.eFilePermissionsEveryoneW |
| |
| eFilePermissionsEveryoneX = _lldb.eFilePermissionsEveryoneX |
| |
| eFilePermissionsEveryoneRW = _lldb.eFilePermissionsEveryoneRW |
| |
| eFilePermissionsEveryoneRX = _lldb.eFilePermissionsEveryoneRX |
| |
| eFilePermissionsEveryoneRWX = _lldb.eFilePermissionsEveryoneRWX |
| |
| eFilePermissionsFileDefault = _lldb.eFilePermissionsFileDefault |
| |
| eFilePermissionsDirectoryDefault = _lldb.eFilePermissionsDirectoryDefault |
| |
| eQueueItemKindUnknown = _lldb.eQueueItemKindUnknown |
| |
| eQueueItemKindFunction = _lldb.eQueueItemKindFunction |
| |
| eQueueItemKindBlock = _lldb.eQueueItemKindBlock |
| |
| eQueueKindUnknown = _lldb.eQueueKindUnknown |
| |
| eQueueKindSerial = _lldb.eQueueKindSerial |
| |
| eQueueKindConcurrent = _lldb.eQueueKindConcurrent |
| |
| eExpressionEvaluationParse = _lldb.eExpressionEvaluationParse |
| |
| eExpressionEvaluationIRGen = _lldb.eExpressionEvaluationIRGen |
| |
| eExpressionEvaluationExecution = _lldb.eExpressionEvaluationExecution |
| |
| eExpressionEvaluationComplete = _lldb.eExpressionEvaluationComplete |
| |
| eTraceInstructionControlFlowTypeInstruction = _lldb.eTraceInstructionControlFlowTypeInstruction |
| |
| eTraceInstructionControlFlowTypeBranch = _lldb.eTraceInstructionControlFlowTypeBranch |
| |
| eTraceInstructionControlFlowTypeTakenBranch = _lldb.eTraceInstructionControlFlowTypeTakenBranch |
| |
| eTraceInstructionControlFlowTypeCall = _lldb.eTraceInstructionControlFlowTypeCall |
| |
| eTraceInstructionControlFlowTypeReturn = _lldb.eTraceInstructionControlFlowTypeReturn |
| |
| eWatchpointKindWrite = _lldb.eWatchpointKindWrite |
| |
| eWatchpointKindRead = _lldb.eWatchpointKindRead |
| |
| eGdbSignalBadAccess = _lldb.eGdbSignalBadAccess |
| |
| eGdbSignalBadInstruction = _lldb.eGdbSignalBadInstruction |
| |
| eGdbSignalArithmetic = _lldb.eGdbSignalArithmetic |
| |
| eGdbSignalEmulation = _lldb.eGdbSignalEmulation |
| |
| eGdbSignalSoftware = _lldb.eGdbSignalSoftware |
| |
| eGdbSignalBreakpoint = _lldb.eGdbSignalBreakpoint |
| |
| ePathTypeLLDBShlibDir = _lldb.ePathTypeLLDBShlibDir |
| |
| ePathTypeSupportExecutableDir = _lldb.ePathTypeSupportExecutableDir |
| |
| ePathTypeHeaderDir = _lldb.ePathTypeHeaderDir |
| |
| ePathTypePythonDir = _lldb.ePathTypePythonDir |
| |
| ePathTypeLLDBSystemPlugins = _lldb.ePathTypeLLDBSystemPlugins |
| |
| ePathTypeLLDBUserPlugins = _lldb.ePathTypeLLDBUserPlugins |
| |
| ePathTypeLLDBTempSystemDir = _lldb.ePathTypeLLDBTempSystemDir |
| |
| ePathTypeGlobalLLDBTempSystemDir = _lldb.ePathTypeGlobalLLDBTempSystemDir |
| |
| ePathTypeClangDir = _lldb.ePathTypeClangDir |
| |
| eMemberFunctionKindUnknown = _lldb.eMemberFunctionKindUnknown |
| |
| eMemberFunctionKindConstructor = _lldb.eMemberFunctionKindConstructor |
| |
| eMemberFunctionKindDestructor = _lldb.eMemberFunctionKindDestructor |
| |
| eMemberFunctionKindInstanceMethod = _lldb.eMemberFunctionKindInstanceMethod |
| |
| eMemberFunctionKindStaticMethod = _lldb.eMemberFunctionKindStaticMethod |
| |
| eMatchTypeNormal = _lldb.eMatchTypeNormal |
| |
| eMatchTypeRegex = _lldb.eMatchTypeRegex |
| |
| eMatchTypeStartsWith = _lldb.eMatchTypeStartsWith |
| |
| eTypeHasChildren = _lldb.eTypeHasChildren |
| |
| eTypeHasValue = _lldb.eTypeHasValue |
| |
| eTypeIsArray = _lldb.eTypeIsArray |
| |
| eTypeIsBlock = _lldb.eTypeIsBlock |
| |
| eTypeIsBuiltIn = _lldb.eTypeIsBuiltIn |
| |
| eTypeIsClass = _lldb.eTypeIsClass |
| |
| eTypeIsCPlusPlus = _lldb.eTypeIsCPlusPlus |
| |
| eTypeIsEnumeration = _lldb.eTypeIsEnumeration |
| |
| eTypeIsFuncPrototype = _lldb.eTypeIsFuncPrototype |
| |
| eTypeIsMember = _lldb.eTypeIsMember |
| |
| eTypeIsObjC = _lldb.eTypeIsObjC |
| |
| eTypeIsPointer = _lldb.eTypeIsPointer |
| |
| eTypeIsReference = _lldb.eTypeIsReference |
| |
| eTypeIsStructUnion = _lldb.eTypeIsStructUnion |
| |
| eTypeIsTemplate = _lldb.eTypeIsTemplate |
| |
| eTypeIsTypedef = _lldb.eTypeIsTypedef |
| |
| eTypeIsVector = _lldb.eTypeIsVector |
| |
| eTypeIsScalar = _lldb.eTypeIsScalar |
| |
| eTypeIsInteger = _lldb.eTypeIsInteger |
| |
| eTypeIsFloat = _lldb.eTypeIsFloat |
| |
| eTypeIsComplex = _lldb.eTypeIsComplex |
| |
| eTypeIsSigned = _lldb.eTypeIsSigned |
| |
| eTypeInstanceIsPointer = _lldb.eTypeInstanceIsPointer |
| |
| eCommandRequiresTarget = _lldb.eCommandRequiresTarget |
| |
| eCommandRequiresProcess = _lldb.eCommandRequiresProcess |
| |
| eCommandRequiresThread = _lldb.eCommandRequiresThread |
| |
| eCommandRequiresFrame = _lldb.eCommandRequiresFrame |
| |
| eCommandRequiresRegContext = _lldb.eCommandRequiresRegContext |
| |
| eCommandTryTargetAPILock = _lldb.eCommandTryTargetAPILock |
| |
| eCommandProcessMustBeLaunched = _lldb.eCommandProcessMustBeLaunched |
| |
| eCommandProcessMustBePaused = _lldb.eCommandProcessMustBePaused |
| |
| eCommandProcessMustBeTraced = _lldb.eCommandProcessMustBeTraced |
| |
| eTypeSummaryCapped = _lldb.eTypeSummaryCapped |
| |
| eTypeSummaryUncapped = _lldb.eTypeSummaryUncapped |
| |
| eCommandInterpreterResultSuccess = _lldb.eCommandInterpreterResultSuccess |
| |
| eCommandInterpreterResultInferiorCrash = _lldb.eCommandInterpreterResultInferiorCrash |
| |
| eCommandInterpreterResultCommandError = _lldb.eCommandInterpreterResultCommandError |
| |
| eCommandInterpreterResultQuitRequested = _lldb.eCommandInterpreterResultQuitRequested |
| |
| eSaveCoreUnspecified = _lldb.eSaveCoreUnspecified |
| |
| eSaveCoreFull = _lldb.eSaveCoreFull |
| |
| eSaveCoreDirtyOnly = _lldb.eSaveCoreDirtyOnly |
| |
| eSaveCoreStackOnly = _lldb.eSaveCoreStackOnly |
| |
| class SBAddress(object): |
| r""" |
| A section + offset based address class. |
| |
| The SBAddress class allows addresses to be relative to a section |
| that can move during runtime due to images (executables, shared |
| libraries, bundles, frameworks) being loaded at different |
| addresses than the addresses found in the object file that |
| represents them on disk. There are currently two types of addresses |
| for a section: |
| |
| * file addresses |
| * load addresses |
| |
| File addresses represents the virtual addresses that are in the 'on |
| disk' object files. These virtual addresses are converted to be |
| relative to unique sections scoped to the object file so that |
| when/if the addresses slide when the images are loaded/unloaded |
| in memory, we can easily track these changes without having to |
| update every object (compile unit ranges, line tables, function |
| address ranges, lexical block and inlined subroutine address |
| ranges, global and static variables) each time an image is loaded or |
| unloaded. |
| |
| Load addresses represents the virtual addresses where each section |
| ends up getting loaded at runtime. Before executing a program, it |
| is common for all of the load addresses to be unresolved. When a |
| DynamicLoader plug-in receives notification that shared libraries |
| have been loaded/unloaded, the load addresses of the main executable |
| and any images (shared libraries) will be resolved/unresolved. When |
| this happens, breakpoints that are in one of these sections can be |
| set/cleared. |
| |
| See docstring of SBFunction for example usage of SBAddress. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBAddress self) -> SBAddress |
| __init__(SBAddress self, SBAddress rhs) -> SBAddress |
| __init__(SBAddress self, SBSection section, lldb::addr_t offset) -> SBAddress |
| __init__(SBAddress self, lldb::addr_t load_addr, SBTarget target) -> SBAddress |
| |
| Create an address by resolving a load address using the supplied target. |
| """ |
| _lldb.SBAddress_swiginit(self, _lldb.new_SBAddress(*args)) |
| __swig_destroy__ = _lldb.delete_SBAddress |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBAddress self) -> bool""" |
| return _lldb.SBAddress_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBAddress___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def __eq__(self, other): |
| return not self.__ne__(other) |
| |
| |
| def __ne__(self, rhs: "SBAddress") -> "bool": |
| r"""__ne__(SBAddress self, SBAddress rhs) -> bool""" |
| return _lldb.SBAddress___ne__(self, rhs) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBAddress self)""" |
| return _lldb.SBAddress_Clear(self) |
| |
| def GetFileAddress(self) -> "lldb::addr_t": |
| r"""GetFileAddress(SBAddress self) -> lldb::addr_t""" |
| return _lldb.SBAddress_GetFileAddress(self) |
| |
| def GetLoadAddress(self, target: "SBTarget") -> "lldb::addr_t": |
| r"""GetLoadAddress(SBAddress self, SBTarget target) -> lldb::addr_t""" |
| return _lldb.SBAddress_GetLoadAddress(self, target) |
| |
| def SetLoadAddress(self, load_addr: "lldb::addr_t", target: "SBTarget") -> "void": |
| r"""SetLoadAddress(SBAddress self, lldb::addr_t load_addr, SBTarget target)""" |
| return _lldb.SBAddress_SetLoadAddress(self, load_addr, target) |
| |
| def OffsetAddress(self, offset: "lldb::addr_t") -> "bool": |
| r"""OffsetAddress(SBAddress self, lldb::addr_t offset) -> bool""" |
| return _lldb.SBAddress_OffsetAddress(self, offset) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBAddress self, SBStream description) -> bool""" |
| return _lldb.SBAddress_GetDescription(self, description) |
| |
| def GetSection(self) -> "lldb::SBSection": |
| r"""GetSection(SBAddress self) -> SBSection""" |
| return _lldb.SBAddress_GetSection(self) |
| |
| def GetOffset(self) -> "lldb::addr_t": |
| r"""GetOffset(SBAddress self) -> lldb::addr_t""" |
| return _lldb.SBAddress_GetOffset(self) |
| |
| def SetAddress(self, section: "SBSection", offset: "lldb::addr_t") -> "void": |
| r"""SetAddress(SBAddress self, SBSection section, lldb::addr_t offset)""" |
| return _lldb.SBAddress_SetAddress(self, section, offset) |
| |
| def GetSymbolContext(self, resolve_scope: "uint32_t") -> "lldb::SBSymbolContext": |
| r""" |
| GetSymbolContext(SBAddress self, uint32_t resolve_scope) -> SBSymbolContext |
| |
| GetSymbolContext() and the following can lookup symbol information for a given address. |
| An address might refer to code or data from an existing module, or it |
| might refer to something on the stack or heap. The following functions |
| will only return valid values if the address has been resolved to a code |
| or data address using :py:class:`SBAddress.SetLoadAddress' or |
| :py:class:`SBTarget.ResolveLoadAddress`. |
| """ |
| return _lldb.SBAddress_GetSymbolContext(self, resolve_scope) |
| |
| def GetModule(self) -> "lldb::SBModule": |
| r""" |
| GetModule(SBAddress self) -> SBModule |
| |
| GetModule() and the following grab individual objects for a given address and |
| are less efficient if you want more than one symbol related objects. |
| Use :py:class:`SBAddress.GetSymbolContext` or |
| :py:class:`SBTarget.ResolveSymbolContextForAddress` when you want multiple |
| debug symbol related objects for an address. |
| One or more bits from the SymbolContextItem enumerations can be logically |
| OR'ed together to more efficiently retrieve multiple symbol objects. |
| """ |
| return _lldb.SBAddress_GetModule(self) |
| |
| def GetCompileUnit(self) -> "lldb::SBCompileUnit": |
| r"""GetCompileUnit(SBAddress self) -> SBCompileUnit""" |
| return _lldb.SBAddress_GetCompileUnit(self) |
| |
| def GetFunction(self) -> "lldb::SBFunction": |
| r"""GetFunction(SBAddress self) -> SBFunction""" |
| return _lldb.SBAddress_GetFunction(self) |
| |
| def GetBlock(self) -> "lldb::SBBlock": |
| r"""GetBlock(SBAddress self) -> SBBlock""" |
| return _lldb.SBAddress_GetBlock(self) |
| |
| def GetSymbol(self) -> "lldb::SBSymbol": |
| r"""GetSymbol(SBAddress self) -> SBSymbol""" |
| return _lldb.SBAddress_GetSymbol(self) |
| |
| def GetLineEntry(self) -> "lldb::SBLineEntry": |
| r"""GetLineEntry(SBAddress self) -> SBLineEntry""" |
| return _lldb.SBAddress_GetLineEntry(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBAddress self) -> std::string""" |
| return _lldb.SBAddress___str__(self) |
| |
| __runtime_error_str = 'This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.' |
| |
| def __get_load_addr_property__ (self): |
| '''Get the load address for a lldb.SBAddress using the current target. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''' |
| if not target: |
| raise RuntimeError(self.__runtime_error_str) |
| return self.GetLoadAddress (target) |
| |
| def __set_load_addr_property__ (self, load_addr): |
| '''Set the load address for a lldb.SBAddress using the current target. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''' |
| if not target: |
| raise RuntimeError(self.__runtime_error_str) |
| return self.SetLoadAddress (load_addr, target) |
| |
| def __int__(self): |
| '''Convert an address to a load address if there is a process and that process is alive, or to a file address otherwise. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''' |
| if not process or not target: |
| raise RuntimeError(self.__runtime_error_str) |
| if process.is_alive: |
| return self.GetLoadAddress (target) |
| return self.GetFileAddress () |
| |
| def __oct__(self): |
| '''Convert the address to an octal string. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''' |
| return '%o' % int(self) |
| |
| def __hex__(self): |
| '''Convert the address to an hex string. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''' |
| return '0x%x' % int(self) |
| |
| module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) that this address resides within.''') |
| compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) that this address resides within.''') |
| line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line entry (lldb.SBLineEntry) that this address resides within.''') |
| function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) that this address resides within.''') |
| block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) that this address resides within.''') |
| symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) that this address resides within.''') |
| offset = property(GetOffset, None, doc='''A read only property that returns the section offset in bytes as an integer.''') |
| section = property(GetSection, None, doc='''A read only property that returns an lldb object that represents the section (lldb.SBSection) that this address resides within.''') |
| file_addr = property(GetFileAddress, None, doc='''A read only property that returns file address for the section as an integer. This is the address that represents the address as it is found in the object file that defines it.''') |
| load_addr = property(__get_load_addr_property__, __set_load_addr_property__, doc='''A read/write property that gets/sets the SBAddress using load address. This resolves the SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command). For things like Python based commands and breakpoint callbacks use GetLoadAddress instead.''') |
| |
| |
| # Register SBAddress in _lldb: |
| _lldb.SBAddress_swigregister(SBAddress) |
| |
| class SBAttachInfo(object): |
| r"""Describes how to attach when calling :py:class:`SBTarget.Attach`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBAttachInfo self) -> SBAttachInfo |
| __init__(SBAttachInfo self, lldb::pid_t pid) -> SBAttachInfo |
| __init__(SBAttachInfo self, char const * path, bool wait_for) -> SBAttachInfo |
| __init__(SBAttachInfo self, char const * path, bool wait_for, bool _async) -> SBAttachInfo |
| __init__(SBAttachInfo self, SBAttachInfo rhs) -> SBAttachInfo |
| """ |
| _lldb.SBAttachInfo_swiginit(self, _lldb.new_SBAttachInfo(*args)) |
| |
| def GetProcessID(self) -> "lldb::pid_t": |
| r"""GetProcessID(SBAttachInfo self) -> lldb::pid_t""" |
| return _lldb.SBAttachInfo_GetProcessID(self) |
| |
| def SetProcessID(self, pid: "lldb::pid_t") -> "void": |
| r"""SetProcessID(SBAttachInfo self, lldb::pid_t pid)""" |
| return _lldb.SBAttachInfo_SetProcessID(self, pid) |
| |
| def SetExecutable(self, *args) -> "void": |
| r""" |
| SetExecutable(SBAttachInfo self, char const * path) |
| SetExecutable(SBAttachInfo self, SBFileSpec exe_file) |
| """ |
| return _lldb.SBAttachInfo_SetExecutable(self, *args) |
| |
| def GetWaitForLaunch(self) -> "bool": |
| r"""GetWaitForLaunch(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_GetWaitForLaunch(self) |
| |
| def SetWaitForLaunch(self, *args) -> "void": |
| r""" |
| SetWaitForLaunch(SBAttachInfo self, bool b) |
| SetWaitForLaunch(SBAttachInfo self, bool b, bool _async) |
| """ |
| return _lldb.SBAttachInfo_SetWaitForLaunch(self, *args) |
| |
| def GetIgnoreExisting(self) -> "bool": |
| r"""GetIgnoreExisting(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_GetIgnoreExisting(self) |
| |
| def SetIgnoreExisting(self, b: "bool") -> "void": |
| r"""SetIgnoreExisting(SBAttachInfo self, bool b)""" |
| return _lldb.SBAttachInfo_SetIgnoreExisting(self, b) |
| |
| def GetResumeCount(self) -> "uint32_t": |
| r"""GetResumeCount(SBAttachInfo self) -> uint32_t""" |
| return _lldb.SBAttachInfo_GetResumeCount(self) |
| |
| def SetResumeCount(self, c: "uint32_t") -> "void": |
| r"""SetResumeCount(SBAttachInfo self, uint32_t c)""" |
| return _lldb.SBAttachInfo_SetResumeCount(self, c) |
| |
| def GetProcessPluginName(self) -> "char const *": |
| r"""GetProcessPluginName(SBAttachInfo self) -> char const *""" |
| return _lldb.SBAttachInfo_GetProcessPluginName(self) |
| |
| def SetProcessPluginName(self, plugin_name: "char const *") -> "void": |
| r"""SetProcessPluginName(SBAttachInfo self, char const * plugin_name)""" |
| return _lldb.SBAttachInfo_SetProcessPluginName(self, plugin_name) |
| |
| def GetUserID(self) -> "uint32_t": |
| r"""GetUserID(SBAttachInfo self) -> uint32_t""" |
| return _lldb.SBAttachInfo_GetUserID(self) |
| |
| def GetGroupID(self) -> "uint32_t": |
| r"""GetGroupID(SBAttachInfo self) -> uint32_t""" |
| return _lldb.SBAttachInfo_GetGroupID(self) |
| |
| def UserIDIsValid(self) -> "bool": |
| r"""UserIDIsValid(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_UserIDIsValid(self) |
| |
| def GroupIDIsValid(self) -> "bool": |
| r"""GroupIDIsValid(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_GroupIDIsValid(self) |
| |
| def SetUserID(self, uid: "uint32_t") -> "void": |
| r"""SetUserID(SBAttachInfo self, uint32_t uid)""" |
| return _lldb.SBAttachInfo_SetUserID(self, uid) |
| |
| def SetGroupID(self, gid: "uint32_t") -> "void": |
| r"""SetGroupID(SBAttachInfo self, uint32_t gid)""" |
| return _lldb.SBAttachInfo_SetGroupID(self, gid) |
| |
| def GetEffectiveUserID(self) -> "uint32_t": |
| r"""GetEffectiveUserID(SBAttachInfo self) -> uint32_t""" |
| return _lldb.SBAttachInfo_GetEffectiveUserID(self) |
| |
| def GetEffectiveGroupID(self) -> "uint32_t": |
| r"""GetEffectiveGroupID(SBAttachInfo self) -> uint32_t""" |
| return _lldb.SBAttachInfo_GetEffectiveGroupID(self) |
| |
| def EffectiveUserIDIsValid(self) -> "bool": |
| r"""EffectiveUserIDIsValid(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_EffectiveUserIDIsValid(self) |
| |
| def EffectiveGroupIDIsValid(self) -> "bool": |
| r"""EffectiveGroupIDIsValid(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_EffectiveGroupIDIsValid(self) |
| |
| def SetEffectiveUserID(self, uid: "uint32_t") -> "void": |
| r"""SetEffectiveUserID(SBAttachInfo self, uint32_t uid)""" |
| return _lldb.SBAttachInfo_SetEffectiveUserID(self, uid) |
| |
| def SetEffectiveGroupID(self, gid: "uint32_t") -> "void": |
| r"""SetEffectiveGroupID(SBAttachInfo self, uint32_t gid)""" |
| return _lldb.SBAttachInfo_SetEffectiveGroupID(self, gid) |
| |
| def GetParentProcessID(self) -> "lldb::pid_t": |
| r"""GetParentProcessID(SBAttachInfo self) -> lldb::pid_t""" |
| return _lldb.SBAttachInfo_GetParentProcessID(self) |
| |
| def SetParentProcessID(self, pid: "lldb::pid_t") -> "void": |
| r"""SetParentProcessID(SBAttachInfo self, lldb::pid_t pid)""" |
| return _lldb.SBAttachInfo_SetParentProcessID(self, pid) |
| |
| def ParentProcessIDIsValid(self) -> "bool": |
| r"""ParentProcessIDIsValid(SBAttachInfo self) -> bool""" |
| return _lldb.SBAttachInfo_ParentProcessIDIsValid(self) |
| |
| def GetListener(self) -> "lldb::SBListener": |
| r"""GetListener(SBAttachInfo self) -> SBListener""" |
| return _lldb.SBAttachInfo_GetListener(self) |
| |
| def SetListener(self, listener: "SBListener") -> "void": |
| r"""SetListener(SBAttachInfo self, SBListener listener)""" |
| return _lldb.SBAttachInfo_SetListener(self, listener) |
| __swig_destroy__ = _lldb.delete_SBAttachInfo |
| |
| # Register SBAttachInfo in _lldb: |
| _lldb.SBAttachInfo_swigregister(SBAttachInfo) |
| |
| class SBBlock(object): |
| r"""Represents a lexical block. SBFunction contains SBBlock(s).""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBBlock self) -> SBBlock |
| __init__(SBBlock self, SBBlock rhs) -> SBBlock |
| """ |
| _lldb.SBBlock_swiginit(self, _lldb.new_SBBlock(*args)) |
| __swig_destroy__ = _lldb.delete_SBBlock |
| |
| def IsInlined(self) -> "bool": |
| r""" |
| IsInlined(SBBlock self) -> bool |
| Is this block contained within an inlined function? |
| """ |
| return _lldb.SBBlock_IsInlined(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBBlock self) -> bool""" |
| return _lldb.SBBlock_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBBlock___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetInlinedName(self) -> "char const *": |
| r""" |
| GetInlinedName(SBBlock self) -> char const * |
| |
| Get the function name if this block represents an inlined function; |
| otherwise, return None. |
| """ |
| return _lldb.SBBlock_GetInlinedName(self) |
| |
| def GetInlinedCallSiteFile(self) -> "lldb::SBFileSpec": |
| r""" |
| GetInlinedCallSiteFile(SBBlock self) -> SBFileSpec |
| |
| Get the call site file if this block represents an inlined function; |
| otherwise, return an invalid file spec. |
| """ |
| return _lldb.SBBlock_GetInlinedCallSiteFile(self) |
| |
| def GetInlinedCallSiteLine(self) -> "uint32_t": |
| r""" |
| GetInlinedCallSiteLine(SBBlock self) -> uint32_t |
| |
| Get the call site line if this block represents an inlined function; |
| otherwise, return 0. |
| """ |
| return _lldb.SBBlock_GetInlinedCallSiteLine(self) |
| |
| def GetInlinedCallSiteColumn(self) -> "uint32_t": |
| r""" |
| GetInlinedCallSiteColumn(SBBlock self) -> uint32_t |
| |
| Get the call site column if this block represents an inlined function; |
| otherwise, return 0. |
| """ |
| return _lldb.SBBlock_GetInlinedCallSiteColumn(self) |
| |
| def GetParent(self) -> "lldb::SBBlock": |
| r""" |
| GetParent(SBBlock self) -> SBBlock |
| Get the parent block. |
| """ |
| return _lldb.SBBlock_GetParent(self) |
| |
| def GetContainingInlinedBlock(self) -> "lldb::SBBlock": |
| r""" |
| GetContainingInlinedBlock(SBBlock self) -> SBBlock |
| Get the inlined block that is or contains this block. |
| """ |
| return _lldb.SBBlock_GetContainingInlinedBlock(self) |
| |
| def GetSibling(self) -> "lldb::SBBlock": |
| r""" |
| GetSibling(SBBlock self) -> SBBlock |
| Get the sibling block for this block. |
| """ |
| return _lldb.SBBlock_GetSibling(self) |
| |
| def GetFirstChild(self) -> "lldb::SBBlock": |
| r""" |
| GetFirstChild(SBBlock self) -> SBBlock |
| Get the first child block. |
| """ |
| return _lldb.SBBlock_GetFirstChild(self) |
| |
| def GetNumRanges(self) -> "uint32_t": |
| r"""GetNumRanges(SBBlock self) -> uint32_t""" |
| return _lldb.SBBlock_GetNumRanges(self) |
| |
| def GetRangeStartAddress(self, idx: "uint32_t") -> "lldb::SBAddress": |
| r"""GetRangeStartAddress(SBBlock self, uint32_t idx) -> SBAddress""" |
| return _lldb.SBBlock_GetRangeStartAddress(self, idx) |
| |
| def GetRangeEndAddress(self, idx: "uint32_t") -> "lldb::SBAddress": |
| r"""GetRangeEndAddress(SBBlock self, uint32_t idx) -> SBAddress""" |
| return _lldb.SBBlock_GetRangeEndAddress(self, idx) |
| |
| def GetRangeIndexForBlockAddress(self, block_addr: "SBAddress") -> "uint32_t": |
| r"""GetRangeIndexForBlockAddress(SBBlock self, SBAddress block_addr) -> uint32_t""" |
| return _lldb.SBBlock_GetRangeIndexForBlockAddress(self, block_addr) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBBlock self, SBStream description) -> bool""" |
| return _lldb.SBBlock_GetDescription(self, description) |
| |
| def GetVariables(self, *args) -> "lldb::SBValueList": |
| r""" |
| GetVariables(SBBlock self, SBFrame frame, bool arguments, bool locals, bool statics, lldb::DynamicValueType use_dynamic) -> SBValueList |
| GetVariables(SBBlock self, SBTarget target, bool arguments, bool locals, bool statics) -> SBValueList |
| """ |
| return _lldb.SBBlock_GetVariables(self, *args) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBBlock self) -> std::string""" |
| return _lldb.SBBlock___str__(self) |
| |
| def get_range_at_index(self, idx): |
| if idx < self.GetNumRanges(): |
| return [self.GetRangeStartAddress(idx), self.GetRangeEndAddress(idx)] |
| return [] |
| |
| class ranges_access(object): |
| '''A helper object that will lazily hand out an array of lldb.SBAddress that represent address ranges for a block.''' |
| def __init__(self, sbblock): |
| self.sbblock = sbblock |
| |
| def __len__(self): |
| if self.sbblock: |
| return int(self.sbblock.GetNumRanges()) |
| return 0 |
| |
| def __getitem__(self, key): |
| count = len(self) |
| if type(key) is int: |
| return self.sbblock.get_range_at_index (key); |
| if isinstance(key, SBAddress): |
| range_idx = self.sbblock.GetRangeIndexForBlockAddress(key); |
| if range_idx < len(self): |
| return [self.sbblock.GetRangeStartAddress(range_idx), self.sbblock.GetRangeEndAddress(range_idx)] |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| def get_ranges_access_object(self): |
| '''An accessor function that returns a ranges_access() object which allows lazy block address ranges access.''' |
| return self.ranges_access (self) |
| |
| def get_ranges_array(self): |
| '''An accessor function that returns an array object that contains all ranges in this block object.''' |
| if not hasattr(self, 'ranges_array'): |
| self.ranges_array = [] |
| for idx in range(self.num_ranges): |
| self.ranges_array.append ([self.GetRangeStartAddress(idx), self.GetRangeEndAddress(idx)]) |
| return self.ranges_array |
| |
| def get_call_site(self): |
| return declaration(self.GetInlinedCallSiteFile(), self.GetInlinedCallSiteLine(), self.GetInlinedCallSiteColumn()) |
| |
| parent = property(GetParent, None, doc='''A read only property that returns the same result as GetParent().''') |
| first_child = property(GetFirstChild, None, doc='''A read only property that returns the same result as GetFirstChild().''') |
| call_site = property(get_call_site, None, doc='''A read only property that returns a lldb.declaration object that contains the inlined call site file, line and column.''') |
| sibling = property(GetSibling, None, doc='''A read only property that returns the same result as GetSibling().''') |
| name = property(GetInlinedName, None, doc='''A read only property that returns the same result as GetInlinedName().''') |
| inlined_block = property(GetContainingInlinedBlock, None, doc='''A read only property that returns the same result as GetContainingInlinedBlock().''') |
| range = property(get_ranges_access_object, None, doc='''A read only property that allows item access to the address ranges for a block by integer (range = block.range[0]) and by lldb.SBAddress (find the range that contains the specified lldb.SBAddress like "pc_range = lldb.frame.block.range[frame.addr]").''') |
| ranges = property(get_ranges_array, None, doc='''A read only property that returns a list() object that contains all of the address ranges for the block.''') |
| num_ranges = property(GetNumRanges, None, doc='''A read only property that returns the same result as GetNumRanges().''') |
| |
| |
| # Register SBBlock in _lldb: |
| _lldb.SBBlock_swigregister(SBBlock) |
| |
| class SBBreakpoint(object): |
| r""" |
| Represents a logical breakpoint and its associated settings. |
| |
| For example (from test/functionalities/breakpoint/breakpoint_ignore_count/ |
| TestBreakpointIgnoreCount.py),:: |
| |
| def breakpoint_ignore_count_python(self): |
| '''Use Python APIs to set breakpoint ignore count.''' |
| exe = os.path.join(os.getcwd(), 'a.out') |
| |
| # Create a target by the debugger. |
| target = self.dbg.CreateTarget(exe) |
| self.assertTrue(target, VALID_TARGET) |
| |
| # Now create a breakpoint on main.c by name 'c'. |
| breakpoint = target.BreakpointCreateByName('c', 'a.out') |
| self.assertTrue(breakpoint and |
| breakpoint.GetNumLocations() == 1, |
| VALID_BREAKPOINT) |
| |
| # Get the breakpoint location from breakpoint after we verified that, |
| # indeed, it has one location. |
| location = breakpoint.GetLocationAtIndex(0) |
| self.assertTrue(location and |
| location.IsEnabled(), |
| VALID_BREAKPOINT_LOCATION) |
| |
| # Set the ignore count on the breakpoint location. |
| location.SetIgnoreCount(2) |
| self.assertTrue(location.GetIgnoreCount() == 2, |
| 'SetIgnoreCount() works correctly') |
| |
| # Now launch the process, and do not stop at entry point. |
| process = target.LaunchSimple(None, None, os.getcwd()) |
| self.assertTrue(process, PROCESS_IS_VALID) |
| |
| # Frame#0 should be on main.c:37, frame#1 should be on main.c:25, and |
| # frame#2 should be on main.c:48. |
| #lldbutil.print_stacktraces(process) |
| from lldbutil import get_stopped_thread |
| thread = get_stopped_thread(process, lldb.eStopReasonBreakpoint) |
| self.assertTrue(thread != None, 'There should be a thread stopped due to breakpoint') |
| frame0 = thread.GetFrameAtIndex(0) |
| frame1 = thread.GetFrameAtIndex(1) |
| frame2 = thread.GetFrameAtIndex(2) |
| self.assertTrue(frame0.GetLineEntry().GetLine() == self.line1 and |
| frame1.GetLineEntry().GetLine() == self.line3 and |
| frame2.GetLineEntry().GetLine() == self.line4, |
| STOPPED_DUE_TO_BREAKPOINT_IGNORE_COUNT) |
| |
| # The hit count for the breakpoint should be 3. |
| self.assertTrue(breakpoint.GetHitCount() == 3) |
| |
| process.Continue() |
| |
| SBBreakpoint supports breakpoint location iteration, for example,:: |
| |
| for bl in breakpoint: |
| print('breakpoint location load addr: %s' % hex(bl.GetLoadAddress())) |
| print('breakpoint location condition: %s' % hex(bl.GetCondition())) |
| |
| and rich comparison methods which allow the API program to use,:: |
| |
| if aBreakpoint == bBreakpoint: |
| ... |
| |
| to compare two breakpoints for equality. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBBreakpoint self) -> SBBreakpoint |
| __init__(SBBreakpoint self, SBBreakpoint rhs) -> SBBreakpoint |
| """ |
| _lldb.SBBreakpoint_swiginit(self, _lldb.new_SBBreakpoint(*args)) |
| __swig_destroy__ = _lldb.delete_SBBreakpoint |
| |
| def __eq__(self, rhs: "SBBreakpoint") -> "bool": |
| r"""__eq__(SBBreakpoint self, SBBreakpoint rhs) -> bool""" |
| return _lldb.SBBreakpoint___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBBreakpoint") -> "bool": |
| r"""__ne__(SBBreakpoint self, SBBreakpoint rhs) -> bool""" |
| return _lldb.SBBreakpoint___ne__(self, rhs) |
| |
| def GetID(self) -> "lldb::break_id_t": |
| r"""GetID(SBBreakpoint self) -> lldb::break_id_t""" |
| return _lldb.SBBreakpoint_GetID(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBBreakpoint___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def ClearAllBreakpointSites(self) -> "void": |
| r"""ClearAllBreakpointSites(SBBreakpoint self)""" |
| return _lldb.SBBreakpoint_ClearAllBreakpointSites(self) |
| |
| def GetTarget(self) -> "lldb::SBTarget": |
| r"""GetTarget(SBBreakpoint self) -> SBTarget""" |
| return _lldb.SBBreakpoint_GetTarget(self) |
| |
| def FindLocationByAddress(self, vm_addr: "lldb::addr_t") -> "lldb::SBBreakpointLocation": |
| r"""FindLocationByAddress(SBBreakpoint self, lldb::addr_t vm_addr) -> SBBreakpointLocation""" |
| return _lldb.SBBreakpoint_FindLocationByAddress(self, vm_addr) |
| |
| def FindLocationIDByAddress(self, vm_addr: "lldb::addr_t") -> "lldb::break_id_t": |
| r"""FindLocationIDByAddress(SBBreakpoint self, lldb::addr_t vm_addr) -> lldb::break_id_t""" |
| return _lldb.SBBreakpoint_FindLocationIDByAddress(self, vm_addr) |
| |
| def FindLocationByID(self, bp_loc_id: "lldb::break_id_t") -> "lldb::SBBreakpointLocation": |
| r"""FindLocationByID(SBBreakpoint self, lldb::break_id_t bp_loc_id) -> SBBreakpointLocation""" |
| return _lldb.SBBreakpoint_FindLocationByID(self, bp_loc_id) |
| |
| def GetLocationAtIndex(self, index: "uint32_t") -> "lldb::SBBreakpointLocation": |
| r"""GetLocationAtIndex(SBBreakpoint self, uint32_t index) -> SBBreakpointLocation""" |
| return _lldb.SBBreakpoint_GetLocationAtIndex(self, index) |
| |
| def SetEnabled(self, enable: "bool") -> "void": |
| r"""SetEnabled(SBBreakpoint self, bool enable)""" |
| return _lldb.SBBreakpoint_SetEnabled(self, enable) |
| |
| def IsEnabled(self) -> "bool": |
| r"""IsEnabled(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_IsEnabled(self) |
| |
| def SetOneShot(self, one_shot: "bool") -> "void": |
| r"""SetOneShot(SBBreakpoint self, bool one_shot)""" |
| return _lldb.SBBreakpoint_SetOneShot(self, one_shot) |
| |
| def IsOneShot(self) -> "bool": |
| r"""IsOneShot(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_IsOneShot(self) |
| |
| def IsInternal(self) -> "bool": |
| r"""IsInternal(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_IsInternal(self) |
| |
| def GetHitCount(self) -> "uint32_t": |
| r"""GetHitCount(SBBreakpoint self) -> uint32_t""" |
| return _lldb.SBBreakpoint_GetHitCount(self) |
| |
| def SetIgnoreCount(self, count: "uint32_t") -> "void": |
| r"""SetIgnoreCount(SBBreakpoint self, uint32_t count)""" |
| return _lldb.SBBreakpoint_SetIgnoreCount(self, count) |
| |
| def GetIgnoreCount(self) -> "uint32_t": |
| r"""GetIgnoreCount(SBBreakpoint self) -> uint32_t""" |
| return _lldb.SBBreakpoint_GetIgnoreCount(self) |
| |
| def SetCondition(self, condition: "char const *") -> "void": |
| r""" |
| SetCondition(SBBreakpoint self, char const * condition) |
| |
| The breakpoint stops only if the condition expression evaluates to true. |
| """ |
| return _lldb.SBBreakpoint_SetCondition(self, condition) |
| |
| def GetCondition(self) -> "char const *": |
| r""" |
| GetCondition(SBBreakpoint self) -> char const * |
| |
| Get the condition expression for the breakpoint. |
| """ |
| return _lldb.SBBreakpoint_GetCondition(self) |
| |
| def SetAutoContinue(self, auto_continue: "bool") -> "void": |
| r"""SetAutoContinue(SBBreakpoint self, bool auto_continue)""" |
| return _lldb.SBBreakpoint_SetAutoContinue(self, auto_continue) |
| |
| def GetAutoContinue(self) -> "bool": |
| r"""GetAutoContinue(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_GetAutoContinue(self) |
| |
| def SetThreadID(self, sb_thread_id: "lldb::tid_t") -> "void": |
| r"""SetThreadID(SBBreakpoint self, lldb::tid_t sb_thread_id)""" |
| return _lldb.SBBreakpoint_SetThreadID(self, sb_thread_id) |
| |
| def GetThreadID(self) -> "lldb::tid_t": |
| r"""GetThreadID(SBBreakpoint self) -> lldb::tid_t""" |
| return _lldb.SBBreakpoint_GetThreadID(self) |
| |
| def SetThreadIndex(self, index: "uint32_t") -> "void": |
| r"""SetThreadIndex(SBBreakpoint self, uint32_t index)""" |
| return _lldb.SBBreakpoint_SetThreadIndex(self, index) |
| |
| def GetThreadIndex(self) -> "uint32_t": |
| r"""GetThreadIndex(SBBreakpoint self) -> uint32_t""" |
| return _lldb.SBBreakpoint_GetThreadIndex(self) |
| |
| def SetThreadName(self, thread_name: "char const *") -> "void": |
| r"""SetThreadName(SBBreakpoint self, char const * thread_name)""" |
| return _lldb.SBBreakpoint_SetThreadName(self, thread_name) |
| |
| def GetThreadName(self) -> "char const *": |
| r"""GetThreadName(SBBreakpoint self) -> char const *""" |
| return _lldb.SBBreakpoint_GetThreadName(self) |
| |
| def SetQueueName(self, queue_name: "char const *") -> "void": |
| r"""SetQueueName(SBBreakpoint self, char const * queue_name)""" |
| return _lldb.SBBreakpoint_SetQueueName(self, queue_name) |
| |
| def GetQueueName(self) -> "char const *": |
| r"""GetQueueName(SBBreakpoint self) -> char const *""" |
| return _lldb.SBBreakpoint_GetQueueName(self) |
| |
| def SetScriptCallbackFunction(self, *args) -> "lldb::SBError": |
| r""" |
| SetScriptCallbackFunction(SBBreakpoint self, char const * callback_function_name) |
| SetScriptCallbackFunction(SBBreakpoint self, char const * callback_function_name, SBStructuredData extra_args) -> SBError |
| |
| Set the name of the script function to be called when the breakpoint is hit. |
| To use this variant, the function should take (frame, bp_loc, extra_args, internal_dict) and |
| when the breakpoint is hit the extra_args will be passed to the callback function. |
| """ |
| return _lldb.SBBreakpoint_SetScriptCallbackFunction(self, *args) |
| |
| def SetScriptCallbackBody(self, script_body_text: "char const *") -> "lldb::SBError": |
| r""" |
| SetScriptCallbackBody(SBBreakpoint self, char const * script_body_text) -> SBError |
| |
| Provide the body for the script function to be called when the breakpoint is hit. |
| The body will be wrapped in a function, which be passed two arguments: |
| 'frame' - which holds the bottom-most SBFrame of the thread that hit the breakpoint |
| 'bpno' - which is the SBBreakpointLocation to which the callback was attached. |
| |
| The error parameter is currently ignored, but will at some point hold the Python |
| compilation diagnostics. |
| Returns true if the body compiles successfully, false if not. |
| """ |
| return _lldb.SBBreakpoint_SetScriptCallbackBody(self, script_body_text) |
| |
| def SetCommandLineCommands(self, commands: "SBStringList") -> "void": |
| r"""SetCommandLineCommands(SBBreakpoint self, SBStringList commands)""" |
| return _lldb.SBBreakpoint_SetCommandLineCommands(self, commands) |
| |
| def GetCommandLineCommands(self, commands: "SBStringList") -> "bool": |
| r"""GetCommandLineCommands(SBBreakpoint self, SBStringList commands) -> bool""" |
| return _lldb.SBBreakpoint_GetCommandLineCommands(self, commands) |
| |
| def AddName(self, new_name: "char const *") -> "bool": |
| r"""AddName(SBBreakpoint self, char const * new_name) -> bool""" |
| return _lldb.SBBreakpoint_AddName(self, new_name) |
| |
| def AddNameWithErrorHandling(self, new_name: "char const *") -> "lldb::SBError": |
| r"""AddNameWithErrorHandling(SBBreakpoint self, char const * new_name) -> SBError""" |
| return _lldb.SBBreakpoint_AddNameWithErrorHandling(self, new_name) |
| |
| def RemoveName(self, name_to_remove: "char const *") -> "void": |
| r"""RemoveName(SBBreakpoint self, char const * name_to_remove)""" |
| return _lldb.SBBreakpoint_RemoveName(self, name_to_remove) |
| |
| def MatchesName(self, name: "char const *") -> "bool": |
| r"""MatchesName(SBBreakpoint self, char const * name) -> bool""" |
| return _lldb.SBBreakpoint_MatchesName(self, name) |
| |
| def GetNames(self, names: "SBStringList") -> "void": |
| r"""GetNames(SBBreakpoint self, SBStringList names)""" |
| return _lldb.SBBreakpoint_GetNames(self, names) |
| |
| def GetNumResolvedLocations(self) -> "size_t": |
| r"""GetNumResolvedLocations(SBBreakpoint self) -> size_t""" |
| return _lldb.SBBreakpoint_GetNumResolvedLocations(self) |
| |
| def GetNumLocations(self) -> "size_t": |
| r"""GetNumLocations(SBBreakpoint self) -> size_t""" |
| return _lldb.SBBreakpoint_GetNumLocations(self) |
| |
| def GetDescription(self, *args) -> "bool": |
| r""" |
| GetDescription(SBBreakpoint self, SBStream description) -> bool |
| GetDescription(SBBreakpoint self, SBStream description, bool include_locations) -> bool |
| """ |
| return _lldb.SBBreakpoint_GetDescription(self, *args) |
| |
| def AddLocation(self, address: "SBAddress") -> "lldb::SBError": |
| r"""AddLocation(SBBreakpoint self, SBAddress address) -> SBError""" |
| return _lldb.SBBreakpoint_AddLocation(self, address) |
| |
| def SerializeToStructuredData(self) -> "lldb::SBStructuredData": |
| r"""SerializeToStructuredData(SBBreakpoint self) -> SBStructuredData""" |
| return _lldb.SBBreakpoint_SerializeToStructuredData(self) |
| |
| @staticmethod |
| def EventIsBreakpointEvent(event: "SBEvent") -> "bool": |
| r"""EventIsBreakpointEvent(SBEvent event) -> bool""" |
| return _lldb.SBBreakpoint_EventIsBreakpointEvent(event) |
| |
| @staticmethod |
| def GetBreakpointEventTypeFromEvent(event: "SBEvent") -> "lldb::BreakpointEventType": |
| r"""GetBreakpointEventTypeFromEvent(SBEvent event) -> lldb::BreakpointEventType""" |
| return _lldb.SBBreakpoint_GetBreakpointEventTypeFromEvent(event) |
| |
| @staticmethod |
| def GetBreakpointFromEvent(event: "SBEvent") -> "lldb::SBBreakpoint": |
| r"""GetBreakpointFromEvent(SBEvent event) -> SBBreakpoint""" |
| return _lldb.SBBreakpoint_GetBreakpointFromEvent(event) |
| |
| @staticmethod |
| def GetBreakpointLocationAtIndexFromEvent(event: "SBEvent", loc_idx: "uint32_t") -> "lldb::SBBreakpointLocation": |
| r"""GetBreakpointLocationAtIndexFromEvent(SBEvent event, uint32_t loc_idx) -> SBBreakpointLocation""" |
| return _lldb.SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(event, loc_idx) |
| |
| @staticmethod |
| def GetNumBreakpointLocationsFromEvent(event_sp: "SBEvent") -> "uint32_t": |
| r"""GetNumBreakpointLocationsFromEvent(SBEvent event_sp) -> uint32_t""" |
| return _lldb.SBBreakpoint_GetNumBreakpointLocationsFromEvent(event_sp) |
| |
| def IsHardware(self) -> "bool": |
| r"""IsHardware(SBBreakpoint self) -> bool""" |
| return _lldb.SBBreakpoint_IsHardware(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBBreakpoint self) -> std::string""" |
| return _lldb.SBBreakpoint___str__(self) |
| |
| |
| class locations_access(object): |
| '''A helper object that will lazily hand out locations for a breakpoint when supplied an index.''' |
| def __init__(self, sbbreakpoint): |
| self.sbbreakpoint = sbbreakpoint |
| |
| def __len__(self): |
| if self.sbbreakpoint: |
| return int(self.sbbreakpoint.GetNumLocations()) |
| return 0 |
| |
| def __getitem__(self, key): |
| if type(key) is int and key < len(self): |
| return self.sbbreakpoint.GetLocationAtIndex(key) |
| return None |
| |
| def get_locations_access_object(self): |
| '''An accessor function that returns a locations_access() object which allows lazy location access from a lldb.SBBreakpoint object.''' |
| return self.locations_access (self) |
| |
| def get_breakpoint_location_list(self): |
| '''An accessor function that returns a list() that contains all locations in a lldb.SBBreakpoint object.''' |
| locations = [] |
| accessor = self.get_locations_access_object() |
| for idx in range(len(accessor)): |
| locations.append(accessor[idx]) |
| return locations |
| |
| def __iter__(self): |
| '''Iterate over all breakpoint locations in a lldb.SBBreakpoint |
| object.''' |
| return lldb_iter(self, 'GetNumLocations', 'GetLocationAtIndex') |
| |
| def __len__(self): |
| '''Return the number of breakpoint locations in a lldb.SBBreakpoint |
| object.''' |
| return self.GetNumLocations() |
| |
| locations = property(get_breakpoint_location_list, None, doc='''A read only property that returns a list() of lldb.SBBreakpointLocation objects for this breakpoint.''') |
| location = property(get_locations_access_object, None, doc='''A read only property that returns an object that can access locations by index (not location ID) (location = bkpt.location[12]).''') |
| id = property(GetID, None, doc='''A read only property that returns the ID of this breakpoint.''') |
| enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint is enabled or not.''') |
| one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.''') |
| num_locations = property(GetNumLocations, None, doc='''A read only property that returns the count of locations of this breakpoint.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBBreakpoint in _lldb: |
| _lldb.SBBreakpoint_swigregister(SBBreakpoint) |
| |
| def SBBreakpoint_EventIsBreakpointEvent(event: "SBEvent") -> "bool": |
| r"""SBBreakpoint_EventIsBreakpointEvent(SBEvent event) -> bool""" |
| return _lldb.SBBreakpoint_EventIsBreakpointEvent(event) |
| |
| def SBBreakpoint_GetBreakpointEventTypeFromEvent(event: "SBEvent") -> "lldb::BreakpointEventType": |
| r"""SBBreakpoint_GetBreakpointEventTypeFromEvent(SBEvent event) -> lldb::BreakpointEventType""" |
| return _lldb.SBBreakpoint_GetBreakpointEventTypeFromEvent(event) |
| |
| def SBBreakpoint_GetBreakpointFromEvent(event: "SBEvent") -> "lldb::SBBreakpoint": |
| r"""SBBreakpoint_GetBreakpointFromEvent(SBEvent event) -> SBBreakpoint""" |
| return _lldb.SBBreakpoint_GetBreakpointFromEvent(event) |
| |
| def SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(event: "SBEvent", loc_idx: "uint32_t") -> "lldb::SBBreakpointLocation": |
| r"""SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(SBEvent event, uint32_t loc_idx) -> SBBreakpointLocation""" |
| return _lldb.SBBreakpoint_GetBreakpointLocationAtIndexFromEvent(event, loc_idx) |
| |
| def SBBreakpoint_GetNumBreakpointLocationsFromEvent(event_sp: "SBEvent") -> "uint32_t": |
| r"""SBBreakpoint_GetNumBreakpointLocationsFromEvent(SBEvent event_sp) -> uint32_t""" |
| return _lldb.SBBreakpoint_GetNumBreakpointLocationsFromEvent(event_sp) |
| |
| class SBBreakpointList(object): |
| r"""Represents a list of :py:class:`SBBreakpoint`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, target: "SBTarget"): |
| r"""__init__(SBBreakpointList self, SBTarget target) -> SBBreakpointList""" |
| _lldb.SBBreakpointList_swiginit(self, _lldb.new_SBBreakpointList(target)) |
| __swig_destroy__ = _lldb.delete_SBBreakpointList |
| |
| def GetSize(self) -> "size_t": |
| r"""GetSize(SBBreakpointList self) -> size_t""" |
| return _lldb.SBBreakpointList_GetSize(self) |
| |
| def GetBreakpointAtIndex(self, idx: "size_t") -> "lldb::SBBreakpoint": |
| r"""GetBreakpointAtIndex(SBBreakpointList self, size_t idx) -> SBBreakpoint""" |
| return _lldb.SBBreakpointList_GetBreakpointAtIndex(self, idx) |
| |
| def FindBreakpointByID(self, arg2: "lldb::break_id_t") -> "lldb::SBBreakpoint": |
| r"""FindBreakpointByID(SBBreakpointList self, lldb::break_id_t arg2) -> SBBreakpoint""" |
| return _lldb.SBBreakpointList_FindBreakpointByID(self, arg2) |
| |
| def Append(self, sb_bkpt: "SBBreakpoint") -> "void": |
| r"""Append(SBBreakpointList self, SBBreakpoint sb_bkpt)""" |
| return _lldb.SBBreakpointList_Append(self, sb_bkpt) |
| |
| def AppendIfUnique(self, sb_bkpt: "SBBreakpoint") -> "bool": |
| r"""AppendIfUnique(SBBreakpointList self, SBBreakpoint sb_bkpt) -> bool""" |
| return _lldb.SBBreakpointList_AppendIfUnique(self, sb_bkpt) |
| |
| def AppendByID(self, id: "lldb::break_id_t") -> "void": |
| r"""AppendByID(SBBreakpointList self, lldb::break_id_t id)""" |
| return _lldb.SBBreakpointList_AppendByID(self, id) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBBreakpointList self)""" |
| return _lldb.SBBreakpointList_Clear(self) |
| |
| # Register SBBreakpointList in _lldb: |
| _lldb.SBBreakpointList_swigregister(SBBreakpointList) |
| |
| class SBBreakpointLocation(object): |
| r""" |
| Represents one unique instance (by address) of a logical breakpoint. |
| |
| A breakpoint location is defined by the breakpoint that produces it, |
| and the address that resulted in this particular instantiation. |
| Each breakpoint location has its settable options. |
| |
| :py:class:`SBBreakpoint` contains SBBreakpointLocation(s). See docstring of SBBreakpoint |
| for retrieval of an SBBreakpointLocation from an SBBreakpoint. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBBreakpointLocation self) -> SBBreakpointLocation |
| __init__(SBBreakpointLocation self, SBBreakpointLocation rhs) -> SBBreakpointLocation |
| """ |
| _lldb.SBBreakpointLocation_swiginit(self, _lldb.new_SBBreakpointLocation(*args)) |
| __swig_destroy__ = _lldb.delete_SBBreakpointLocation |
| |
| def GetID(self) -> "lldb::break_id_t": |
| r"""GetID(SBBreakpointLocation self) -> lldb::break_id_t""" |
| return _lldb.SBBreakpointLocation_GetID(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBBreakpointLocation self) -> bool""" |
| return _lldb.SBBreakpointLocation_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBBreakpointLocation___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetAddress(self) -> "lldb::SBAddress": |
| r"""GetAddress(SBBreakpointLocation self) -> SBAddress""" |
| return _lldb.SBBreakpointLocation_GetAddress(self) |
| |
| def GetLoadAddress(self) -> "lldb::addr_t": |
| r"""GetLoadAddress(SBBreakpointLocation self) -> lldb::addr_t""" |
| return _lldb.SBBreakpointLocation_GetLoadAddress(self) |
| |
| def SetEnabled(self, enabled: "bool") -> "void": |
| r"""SetEnabled(SBBreakpointLocation self, bool enabled)""" |
| return _lldb.SBBreakpointLocation_SetEnabled(self, enabled) |
| |
| def IsEnabled(self) -> "bool": |
| r"""IsEnabled(SBBreakpointLocation self) -> bool""" |
| return _lldb.SBBreakpointLocation_IsEnabled(self) |
| |
| def GetHitCount(self) -> "uint32_t": |
| r"""GetHitCount(SBBreakpointLocation self) -> uint32_t""" |
| return _lldb.SBBreakpointLocation_GetHitCount(self) |
| |
| def GetIgnoreCount(self) -> "uint32_t": |
| r"""GetIgnoreCount(SBBreakpointLocation self) -> uint32_t""" |
| return _lldb.SBBreakpointLocation_GetIgnoreCount(self) |
| |
| def SetIgnoreCount(self, n: "uint32_t") -> "void": |
| r"""SetIgnoreCount(SBBreakpointLocation self, uint32_t n)""" |
| return _lldb.SBBreakpointLocation_SetIgnoreCount(self, n) |
| |
| def SetCondition(self, condition: "char const *") -> "void": |
| r""" |
| SetCondition(SBBreakpointLocation self, char const * condition) |
| |
| The breakpoint location stops only if the condition expression evaluates |
| to true. |
| """ |
| return _lldb.SBBreakpointLocation_SetCondition(self, condition) |
| |
| def GetCondition(self) -> "char const *": |
| r""" |
| GetCondition(SBBreakpointLocation self) -> char const * |
| |
| Get the condition expression for the breakpoint location. |
| """ |
| return _lldb.SBBreakpointLocation_GetCondition(self) |
| |
| def GetAutoContinue(self) -> "bool": |
| r"""GetAutoContinue(SBBreakpointLocation self) -> bool""" |
| return _lldb.SBBreakpointLocation_GetAutoContinue(self) |
| |
| def SetAutoContinue(self, auto_continue: "bool") -> "void": |
| r"""SetAutoContinue(SBBreakpointLocation self, bool auto_continue)""" |
| return _lldb.SBBreakpointLocation_SetAutoContinue(self, auto_continue) |
| |
| def SetScriptCallbackFunction(self, *args) -> "lldb::SBError": |
| r""" |
| SetScriptCallbackFunction(SBBreakpointLocation self, char const * callback_function_name) |
| SetScriptCallbackFunction(SBBreakpointLocation self, char const * callback_function_name, SBStructuredData extra_args) -> SBError |
| |
| Set the name of the script function to be called when the breakpoint is hit. |
| To use this variant, the function should take (frame, bp_loc, extra_args, internal_dict) and |
| when the breakpoint is hit the extra_args will be passed to the callback function. |
| """ |
| return _lldb.SBBreakpointLocation_SetScriptCallbackFunction(self, *args) |
| |
| def SetScriptCallbackBody(self, script_body_text: "char const *") -> "lldb::SBError": |
| r""" |
| SetScriptCallbackBody(SBBreakpointLocation self, char const * script_body_text) -> SBError |
| |
| Provide the body for the script function to be called when the breakpoint location is hit. |
| The body will be wrapped in a function, which be passed two arguments: |
| 'frame' - which holds the bottom-most SBFrame of the thread that hit the breakpoint |
| 'bpno' - which is the SBBreakpointLocation to which the callback was attached. |
| |
| The error parameter is currently ignored, but will at some point hold the Python |
| compilation diagnostics. |
| Returns true if the body compiles successfully, false if not. |
| """ |
| return _lldb.SBBreakpointLocation_SetScriptCallbackBody(self, script_body_text) |
| |
| def SetCommandLineCommands(self, commands: "SBStringList") -> "void": |
| r"""SetCommandLineCommands(SBBreakpointLocation self, SBStringList commands)""" |
| return _lldb.SBBreakpointLocation_SetCommandLineCommands(self, commands) |
| |
| def GetCommandLineCommands(self, commands: "SBStringList") -> "bool": |
| r"""GetCommandLineCommands(SBBreakpointLocation self, SBStringList commands) -> bool""" |
| return _lldb.SBBreakpointLocation_GetCommandLineCommands(self, commands) |
| |
| def SetThreadID(self, sb_thread_id: "lldb::tid_t") -> "void": |
| r"""SetThreadID(SBBreakpointLocation self, lldb::tid_t sb_thread_id)""" |
| return _lldb.SBBreakpointLocation_SetThreadID(self, sb_thread_id) |
| |
| def GetThreadID(self) -> "lldb::tid_t": |
| r"""GetThreadID(SBBreakpointLocation self) -> lldb::tid_t""" |
| return _lldb.SBBreakpointLocation_GetThreadID(self) |
| |
| def SetThreadIndex(self, index: "uint32_t") -> "void": |
| r"""SetThreadIndex(SBBreakpointLocation self, uint32_t index)""" |
| return _lldb.SBBreakpointLocation_SetThreadIndex(self, index) |
| |
| def GetThreadIndex(self) -> "uint32_t": |
| r"""GetThreadIndex(SBBreakpointLocation self) -> uint32_t""" |
| return _lldb.SBBreakpointLocation_GetThreadIndex(self) |
| |
| def SetThreadName(self, thread_name: "char const *") -> "void": |
| r"""SetThreadName(SBBreakpointLocation self, char const * thread_name)""" |
| return _lldb.SBBreakpointLocation_SetThreadName(self, thread_name) |
| |
| def GetThreadName(self) -> "char const *": |
| r"""GetThreadName(SBBreakpointLocation self) -> char const *""" |
| return _lldb.SBBreakpointLocation_GetThreadName(self) |
| |
| def SetQueueName(self, queue_name: "char const *") -> "void": |
| r"""SetQueueName(SBBreakpointLocation self, char const * queue_name)""" |
| return _lldb.SBBreakpointLocation_SetQueueName(self, queue_name) |
| |
| def GetQueueName(self) -> "char const *": |
| r"""GetQueueName(SBBreakpointLocation self) -> char const *""" |
| return _lldb.SBBreakpointLocation_GetQueueName(self) |
| |
| def IsResolved(self) -> "bool": |
| r"""IsResolved(SBBreakpointLocation self) -> bool""" |
| return _lldb.SBBreakpointLocation_IsResolved(self) |
| |
| def GetDescription(self, description: "SBStream", level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBBreakpointLocation self, SBStream description, lldb::DescriptionLevel level) -> bool""" |
| return _lldb.SBBreakpointLocation_GetDescription(self, description, level) |
| |
| def GetBreakpoint(self) -> "lldb::SBBreakpoint": |
| r"""GetBreakpoint(SBBreakpointLocation self) -> SBBreakpoint""" |
| return _lldb.SBBreakpointLocation_GetBreakpoint(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBBreakpointLocation self) -> std::string""" |
| return _lldb.SBBreakpointLocation___str__(self) |
| |
| # Register SBBreakpointLocation in _lldb: |
| _lldb.SBBreakpointLocation_swigregister(SBBreakpointLocation) |
| |
| class SBBreakpointName(object): |
| r""" |
| Represents a breakpoint name registered in a given :py:class:`SBTarget`. |
| |
| Breakpoint names provide a way to act on groups of breakpoints. When you add a |
| name to a group of breakpoints, you can then use the name in all the command |
| line lldb commands for that name. You can also configure the SBBreakpointName |
| options and those options will be propagated to any :py:class:`SBBreakpoint` s currently |
| using that name. Adding a name to a breakpoint will also apply any of the |
| set options to that breakpoint. |
| |
| You can also set permissions on a breakpoint name to disable listing, deleting |
| and disabling breakpoints. That will disallow the given operation for breakpoints |
| except when the breakpoint is mentioned by ID. So for instance deleting all the |
| breakpoints won't delete breakpoints so marked. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBBreakpointName self) -> SBBreakpointName |
| __init__(SBBreakpointName self, SBTarget target, char const * name) -> SBBreakpointName |
| __init__(SBBreakpointName self, SBBreakpoint bkpt, char const * name) -> SBBreakpointName |
| __init__(SBBreakpointName self, SBBreakpointName rhs) -> SBBreakpointName |
| """ |
| _lldb.SBBreakpointName_swiginit(self, _lldb.new_SBBreakpointName(*args)) |
| __swig_destroy__ = _lldb.delete_SBBreakpointName |
| |
| def __eq__(self, rhs: "SBBreakpointName") -> "bool": |
| r"""__eq__(SBBreakpointName self, SBBreakpointName rhs) -> bool""" |
| return _lldb.SBBreakpointName___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBBreakpointName") -> "bool": |
| r"""__ne__(SBBreakpointName self, SBBreakpointName rhs) -> bool""" |
| return _lldb.SBBreakpointName___ne__(self, rhs) |
| |
| def __nonzero__(self): |
| return _lldb.SBBreakpointName___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_IsValid(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBBreakpointName self) -> char const *""" |
| return _lldb.SBBreakpointName_GetName(self) |
| |
| def SetEnabled(self, enable: "bool") -> "void": |
| r"""SetEnabled(SBBreakpointName self, bool enable)""" |
| return _lldb.SBBreakpointName_SetEnabled(self, enable) |
| |
| def IsEnabled(self) -> "bool": |
| r"""IsEnabled(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_IsEnabled(self) |
| |
| def SetOneShot(self, one_shot: "bool") -> "void": |
| r"""SetOneShot(SBBreakpointName self, bool one_shot)""" |
| return _lldb.SBBreakpointName_SetOneShot(self, one_shot) |
| |
| def IsOneShot(self) -> "bool": |
| r"""IsOneShot(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_IsOneShot(self) |
| |
| def SetIgnoreCount(self, count: "uint32_t") -> "void": |
| r"""SetIgnoreCount(SBBreakpointName self, uint32_t count)""" |
| return _lldb.SBBreakpointName_SetIgnoreCount(self, count) |
| |
| def GetIgnoreCount(self) -> "uint32_t": |
| r"""GetIgnoreCount(SBBreakpointName self) -> uint32_t""" |
| return _lldb.SBBreakpointName_GetIgnoreCount(self) |
| |
| def SetCondition(self, condition: "char const *") -> "void": |
| r"""SetCondition(SBBreakpointName self, char const * condition)""" |
| return _lldb.SBBreakpointName_SetCondition(self, condition) |
| |
| def GetCondition(self) -> "char const *": |
| r"""GetCondition(SBBreakpointName self) -> char const *""" |
| return _lldb.SBBreakpointName_GetCondition(self) |
| |
| def SetAutoContinue(self, auto_continue: "bool") -> "void": |
| r"""SetAutoContinue(SBBreakpointName self, bool auto_continue)""" |
| return _lldb.SBBreakpointName_SetAutoContinue(self, auto_continue) |
| |
| def GetAutoContinue(self) -> "bool": |
| r"""GetAutoContinue(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_GetAutoContinue(self) |
| |
| def SetThreadID(self, sb_thread_id: "lldb::tid_t") -> "void": |
| r"""SetThreadID(SBBreakpointName self, lldb::tid_t sb_thread_id)""" |
| return _lldb.SBBreakpointName_SetThreadID(self, sb_thread_id) |
| |
| def GetThreadID(self) -> "lldb::tid_t": |
| r"""GetThreadID(SBBreakpointName self) -> lldb::tid_t""" |
| return _lldb.SBBreakpointName_GetThreadID(self) |
| |
| def SetThreadIndex(self, index: "uint32_t") -> "void": |
| r"""SetThreadIndex(SBBreakpointName self, uint32_t index)""" |
| return _lldb.SBBreakpointName_SetThreadIndex(self, index) |
| |
| def GetThreadIndex(self) -> "uint32_t": |
| r"""GetThreadIndex(SBBreakpointName self) -> uint32_t""" |
| return _lldb.SBBreakpointName_GetThreadIndex(self) |
| |
| def SetThreadName(self, thread_name: "char const *") -> "void": |
| r"""SetThreadName(SBBreakpointName self, char const * thread_name)""" |
| return _lldb.SBBreakpointName_SetThreadName(self, thread_name) |
| |
| def GetThreadName(self) -> "char const *": |
| r"""GetThreadName(SBBreakpointName self) -> char const *""" |
| return _lldb.SBBreakpointName_GetThreadName(self) |
| |
| def SetQueueName(self, queue_name: "char const *") -> "void": |
| r"""SetQueueName(SBBreakpointName self, char const * queue_name)""" |
| return _lldb.SBBreakpointName_SetQueueName(self, queue_name) |
| |
| def GetQueueName(self) -> "char const *": |
| r"""GetQueueName(SBBreakpointName self) -> char const *""" |
| return _lldb.SBBreakpointName_GetQueueName(self) |
| |
| def SetScriptCallbackFunction(self, *args) -> "lldb::SBError": |
| r""" |
| SetScriptCallbackFunction(SBBreakpointName self, char const * callback_function_name) |
| SetScriptCallbackFunction(SBBreakpointName self, char const * callback_function_name, SBStructuredData extra_args) -> SBError |
| """ |
| return _lldb.SBBreakpointName_SetScriptCallbackFunction(self, *args) |
| |
| def SetCommandLineCommands(self, commands: "SBStringList") -> "void": |
| r"""SetCommandLineCommands(SBBreakpointName self, SBStringList commands)""" |
| return _lldb.SBBreakpointName_SetCommandLineCommands(self, commands) |
| |
| def GetCommandLineCommands(self, commands: "SBStringList") -> "bool": |
| r"""GetCommandLineCommands(SBBreakpointName self, SBStringList commands) -> bool""" |
| return _lldb.SBBreakpointName_GetCommandLineCommands(self, commands) |
| |
| def SetScriptCallbackBody(self, script_body_text: "char const *") -> "lldb::SBError": |
| r"""SetScriptCallbackBody(SBBreakpointName self, char const * script_body_text) -> SBError""" |
| return _lldb.SBBreakpointName_SetScriptCallbackBody(self, script_body_text) |
| |
| def GetHelpString(self) -> "char const *": |
| r"""GetHelpString(SBBreakpointName self) -> char const *""" |
| return _lldb.SBBreakpointName_GetHelpString(self) |
| |
| def SetHelpString(self, help_string: "char const *") -> "void": |
| r"""SetHelpString(SBBreakpointName self, char const * help_string)""" |
| return _lldb.SBBreakpointName_SetHelpString(self, help_string) |
| |
| def GetAllowList(self) -> "bool": |
| r"""GetAllowList(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_GetAllowList(self) |
| |
| def SetAllowList(self, value: "bool") -> "void": |
| r"""SetAllowList(SBBreakpointName self, bool value)""" |
| return _lldb.SBBreakpointName_SetAllowList(self, value) |
| |
| def GetAllowDelete(self) -> "bool": |
| r"""GetAllowDelete(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_GetAllowDelete(self) |
| |
| def SetAllowDelete(self, value: "bool") -> "void": |
| r"""SetAllowDelete(SBBreakpointName self, bool value)""" |
| return _lldb.SBBreakpointName_SetAllowDelete(self, value) |
| |
| def GetAllowDisable(self) -> "bool": |
| r"""GetAllowDisable(SBBreakpointName self) -> bool""" |
| return _lldb.SBBreakpointName_GetAllowDisable(self) |
| |
| def SetAllowDisable(self, value: "bool") -> "void": |
| r"""SetAllowDisable(SBBreakpointName self, bool value)""" |
| return _lldb.SBBreakpointName_SetAllowDisable(self, value) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBBreakpointName self, SBStream description) -> bool""" |
| return _lldb.SBBreakpointName_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBBreakpointName self) -> std::string""" |
| return _lldb.SBBreakpointName___str__(self) |
| |
| # Register SBBreakpointName in _lldb: |
| _lldb.SBBreakpointName_swigregister(SBBreakpointName) |
| |
| class SBBroadcaster(object): |
| r""" |
| Represents an entity which can broadcast events. |
| |
| A default broadcaster is |
| associated with an SBCommandInterpreter, SBProcess, and SBTarget. For |
| example, use :: |
| |
| broadcaster = process.GetBroadcaster() |
| |
| to retrieve the process's broadcaster. |
| |
| See also SBEvent for example usage of interacting with a broadcaster. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBBroadcaster self) -> SBBroadcaster |
| __init__(SBBroadcaster self, char const * name) -> SBBroadcaster |
| __init__(SBBroadcaster self, SBBroadcaster rhs) -> SBBroadcaster |
| """ |
| _lldb.SBBroadcaster_swiginit(self, _lldb.new_SBBroadcaster(*args)) |
| __swig_destroy__ = _lldb.delete_SBBroadcaster |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBBroadcaster self) -> bool""" |
| return _lldb.SBBroadcaster_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBBroadcaster___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBBroadcaster self)""" |
| return _lldb.SBBroadcaster_Clear(self) |
| |
| def BroadcastEventByType(self, event_type: "uint32_t", unique: "bool"=False) -> "void": |
| r"""BroadcastEventByType(SBBroadcaster self, uint32_t event_type, bool unique=False)""" |
| return _lldb.SBBroadcaster_BroadcastEventByType(self, event_type, unique) |
| |
| def BroadcastEvent(self, event: "SBEvent", unique: "bool"=False) -> "void": |
| r"""BroadcastEvent(SBBroadcaster self, SBEvent event, bool unique=False)""" |
| return _lldb.SBBroadcaster_BroadcastEvent(self, event, unique) |
| |
| def AddInitialEventsToListener(self, listener: "SBListener", requested_events: "uint32_t") -> "void": |
| r"""AddInitialEventsToListener(SBBroadcaster self, SBListener listener, uint32_t requested_events)""" |
| return _lldb.SBBroadcaster_AddInitialEventsToListener(self, listener, requested_events) |
| |
| def AddListener(self, listener: "SBListener", event_mask: "uint32_t") -> "uint32_t": |
| r"""AddListener(SBBroadcaster self, SBListener listener, uint32_t event_mask) -> uint32_t""" |
| return _lldb.SBBroadcaster_AddListener(self, listener, event_mask) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBBroadcaster self) -> char const *""" |
| return _lldb.SBBroadcaster_GetName(self) |
| |
| def EventTypeHasListeners(self, event_type: "uint32_t") -> "bool": |
| r"""EventTypeHasListeners(SBBroadcaster self, uint32_t event_type) -> bool""" |
| return _lldb.SBBroadcaster_EventTypeHasListeners(self, event_type) |
| |
| def RemoveListener(self, *args) -> "bool": |
| r"""RemoveListener(SBBroadcaster self, SBListener listener, uint32_t event_mask=4294967295U) -> bool""" |
| return _lldb.SBBroadcaster_RemoveListener(self, *args) |
| |
| def __eq__(self, rhs: "SBBroadcaster") -> "bool": |
| r"""__eq__(SBBroadcaster self, SBBroadcaster rhs) -> bool""" |
| return _lldb.SBBroadcaster___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBBroadcaster") -> "bool": |
| r"""__ne__(SBBroadcaster self, SBBroadcaster rhs) -> bool""" |
| return _lldb.SBBroadcaster___ne__(self, rhs) |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBBroadcaster in _lldb: |
| _lldb.SBBroadcaster_swigregister(SBBroadcaster) |
| |
| class SBCommandInterpreter(object): |
| r""" |
| SBCommandInterpreter handles/interprets commands for lldb. |
| |
| You get the command interpreter from the :py:class:`SBDebugger` instance. |
| |
| For example (from test/ python_api/interpreter/TestCommandInterpreterAPI.py),:: |
| |
| def command_interpreter_api(self): |
| '''Test the SBCommandInterpreter APIs.''' |
| exe = os.path.join(os.getcwd(), 'a.out') |
| |
| # Create a target by the debugger. |
| target = self.dbg.CreateTarget(exe) |
| self.assertTrue(target, VALID_TARGET) |
| |
| # Retrieve the associated command interpreter from our debugger. |
| ci = self.dbg.GetCommandInterpreter() |
| self.assertTrue(ci, VALID_COMMAND_INTERPRETER) |
| |
| # Exercise some APIs.... |
| |
| self.assertTrue(ci.HasCommands()) |
| self.assertTrue(ci.HasAliases()) |
| self.assertTrue(ci.HasAliasOptions()) |
| self.assertTrue(ci.CommandExists('breakpoint')) |
| self.assertTrue(ci.CommandExists('target')) |
| self.assertTrue(ci.CommandExists('platform')) |
| self.assertTrue(ci.AliasExists('file')) |
| self.assertTrue(ci.AliasExists('run')) |
| self.assertTrue(ci.AliasExists('bt')) |
| |
| res = lldb.SBCommandReturnObject() |
| ci.HandleCommand('breakpoint set -f main.c -l %d' % self.line, res) |
| self.assertTrue(res.Succeeded()) |
| ci.HandleCommand('process launch', res) |
| self.assertTrue(res.Succeeded()) |
| |
| process = ci.GetProcess() |
| self.assertTrue(process) |
| |
| ... |
| |
| The HandleCommand() instance method takes two args: the command string and |
| an SBCommandReturnObject instance which encapsulates the result of command |
| execution. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| eBroadcastBitThreadShouldExit = _lldb.SBCommandInterpreter_eBroadcastBitThreadShouldExit |
| |
| eBroadcastBitResetPrompt = _lldb.SBCommandInterpreter_eBroadcastBitResetPrompt |
| |
| eBroadcastBitQuitCommandReceived = _lldb.SBCommandInterpreter_eBroadcastBitQuitCommandReceived |
| |
| eBroadcastBitAsynchronousOutputData = _lldb.SBCommandInterpreter_eBroadcastBitAsynchronousOutputData |
| |
| eBroadcastBitAsynchronousErrorData = _lldb.SBCommandInterpreter_eBroadcastBitAsynchronousErrorData |
| |
| |
| def __init__(self, rhs: "SBCommandInterpreter"): |
| r"""__init__(SBCommandInterpreter self, SBCommandInterpreter rhs) -> SBCommandInterpreter""" |
| _lldb.SBCommandInterpreter_swiginit(self, _lldb.new_SBCommandInterpreter(rhs)) |
| __swig_destroy__ = _lldb.delete_SBCommandInterpreter |
| |
| @staticmethod |
| def GetArgumentTypeAsCString(arg_type: "lldb::CommandArgumentType const") -> "char const *": |
| r"""GetArgumentTypeAsCString(lldb::CommandArgumentType const arg_type) -> char const *""" |
| return _lldb.SBCommandInterpreter_GetArgumentTypeAsCString(arg_type) |
| |
| @staticmethod |
| def GetArgumentDescriptionAsCString(arg_type: "lldb::CommandArgumentType const") -> "char const *": |
| r"""GetArgumentDescriptionAsCString(lldb::CommandArgumentType const arg_type) -> char const *""" |
| return _lldb.SBCommandInterpreter_GetArgumentDescriptionAsCString(arg_type) |
| |
| @staticmethod |
| def EventIsCommandInterpreterEvent(event: "SBEvent") -> "bool": |
| r"""EventIsCommandInterpreterEvent(SBEvent event) -> bool""" |
| return _lldb.SBCommandInterpreter_EventIsCommandInterpreterEvent(event) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBCommandInterpreter___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetIOHandlerControlSequence(self, ch: "char") -> "char const *": |
| r"""GetIOHandlerControlSequence(SBCommandInterpreter self, char ch) -> char const *""" |
| return _lldb.SBCommandInterpreter_GetIOHandlerControlSequence(self, ch) |
| |
| def GetPromptOnQuit(self) -> "bool": |
| r"""GetPromptOnQuit(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_GetPromptOnQuit(self) |
| |
| def SetPromptOnQuit(self, b: "bool") -> "void": |
| r"""SetPromptOnQuit(SBCommandInterpreter self, bool b)""" |
| return _lldb.SBCommandInterpreter_SetPromptOnQuit(self, b) |
| |
| def AllowExitCodeOnQuit(self, b: "bool") -> "void": |
| r"""AllowExitCodeOnQuit(SBCommandInterpreter self, bool b)""" |
| return _lldb.SBCommandInterpreter_AllowExitCodeOnQuit(self, b) |
| |
| def HasCustomQuitExitCode(self) -> "bool": |
| r"""HasCustomQuitExitCode(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_HasCustomQuitExitCode(self) |
| |
| def GetQuitStatus(self) -> "int": |
| r"""GetQuitStatus(SBCommandInterpreter self) -> int""" |
| return _lldb.SBCommandInterpreter_GetQuitStatus(self) |
| |
| def ResolveCommand(self, command_line: "char const *", result: "SBCommandReturnObject") -> "void": |
| r"""ResolveCommand(SBCommandInterpreter self, char const * command_line, SBCommandReturnObject result)""" |
| return _lldb.SBCommandInterpreter_ResolveCommand(self, command_line, result) |
| |
| def CommandExists(self, cmd: "char const *") -> "bool": |
| r"""CommandExists(SBCommandInterpreter self, char const * cmd) -> bool""" |
| return _lldb.SBCommandInterpreter_CommandExists(self, cmd) |
| |
| def AliasExists(self, cmd: "char const *") -> "bool": |
| r"""AliasExists(SBCommandInterpreter self, char const * cmd) -> bool""" |
| return _lldb.SBCommandInterpreter_AliasExists(self, cmd) |
| |
| def GetBroadcaster(self) -> "lldb::SBBroadcaster": |
| r"""GetBroadcaster(SBCommandInterpreter self) -> SBBroadcaster""" |
| return _lldb.SBCommandInterpreter_GetBroadcaster(self) |
| |
| @staticmethod |
| def GetBroadcasterClass() -> "char const *": |
| r"""GetBroadcasterClass() -> char const *""" |
| return _lldb.SBCommandInterpreter_GetBroadcasterClass() |
| |
| def HasCommands(self) -> "bool": |
| r"""HasCommands(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_HasCommands(self) |
| |
| def HasAliases(self) -> "bool": |
| r"""HasAliases(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_HasAliases(self) |
| |
| def HasAliasOptions(self) -> "bool": |
| r"""HasAliasOptions(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_HasAliasOptions(self) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBCommandInterpreter self) -> SBProcess""" |
| return _lldb.SBCommandInterpreter_GetProcess(self) |
| |
| def GetDebugger(self) -> "lldb::SBDebugger": |
| r"""GetDebugger(SBCommandInterpreter self) -> SBDebugger""" |
| return _lldb.SBCommandInterpreter_GetDebugger(self) |
| |
| def SourceInitFileInHomeDirectory(self, result: "SBCommandReturnObject") -> "void": |
| r"""SourceInitFileInHomeDirectory(SBCommandInterpreter self, SBCommandReturnObject result)""" |
| return _lldb.SBCommandInterpreter_SourceInitFileInHomeDirectory(self, result) |
| |
| def SourceInitFileInCurrentWorkingDirectory(self, result: "SBCommandReturnObject") -> "void": |
| r"""SourceInitFileInCurrentWorkingDirectory(SBCommandInterpreter self, SBCommandReturnObject result)""" |
| return _lldb.SBCommandInterpreter_SourceInitFileInCurrentWorkingDirectory(self, result) |
| |
| def HandleCommand(self, *args) -> "lldb::ReturnStatus": |
| r""" |
| HandleCommand(SBCommandInterpreter self, char const * command_line, SBCommandReturnObject result, bool add_to_history=False) -> lldb::ReturnStatus |
| HandleCommand(SBCommandInterpreter self, char const * command_line, SBExecutionContext exe_ctx, SBCommandReturnObject result, bool add_to_history=False) -> lldb::ReturnStatus |
| """ |
| return _lldb.SBCommandInterpreter_HandleCommand(self, *args) |
| |
| def HandleCommandsFromFile(self, file: "SBFileSpec", override_context: "SBExecutionContext", options: "SBCommandInterpreterRunOptions", result: "SBCommandReturnObject") -> "void": |
| r"""HandleCommandsFromFile(SBCommandInterpreter self, SBFileSpec file, SBExecutionContext override_context, SBCommandInterpreterRunOptions options, SBCommandReturnObject result)""" |
| return _lldb.SBCommandInterpreter_HandleCommandsFromFile(self, file, override_context, options, result) |
| |
| def HandleCompletion(self, current_line: "char const *", cursor_pos: "uint32_t", match_start_point: "int", max_return_elements: "int", matches: "SBStringList") -> "int": |
| r"""HandleCompletion(SBCommandInterpreter self, char const * current_line, uint32_t cursor_pos, int match_start_point, int max_return_elements, SBStringList matches) -> int""" |
| return _lldb.SBCommandInterpreter_HandleCompletion(self, current_line, cursor_pos, match_start_point, max_return_elements, matches) |
| |
| def HandleCompletionWithDescriptions(self, current_line: "char const *", cursor_pos: "uint32_t", match_start_point: "int", max_return_elements: "int", matches: "SBStringList", descriptions: "SBStringList") -> "int": |
| r"""HandleCompletionWithDescriptions(SBCommandInterpreter self, char const * current_line, uint32_t cursor_pos, int match_start_point, int max_return_elements, SBStringList matches, SBStringList descriptions) -> int""" |
| return _lldb.SBCommandInterpreter_HandleCompletionWithDescriptions(self, current_line, cursor_pos, match_start_point, max_return_elements, matches, descriptions) |
| |
| def IsActive(self) -> "bool": |
| r"""IsActive(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_IsActive(self) |
| |
| def WasInterrupted(self) -> "bool": |
| r"""WasInterrupted(SBCommandInterpreter self) -> bool""" |
| return _lldb.SBCommandInterpreter_WasInterrupted(self) |
| |
| # Register SBCommandInterpreter in _lldb: |
| _lldb.SBCommandInterpreter_swigregister(SBCommandInterpreter) |
| |
| def SBCommandInterpreter_GetArgumentTypeAsCString(arg_type: "lldb::CommandArgumentType const") -> "char const *": |
| r"""SBCommandInterpreter_GetArgumentTypeAsCString(lldb::CommandArgumentType const arg_type) -> char const *""" |
| return _lldb.SBCommandInterpreter_GetArgumentTypeAsCString(arg_type) |
| |
| def SBCommandInterpreter_GetArgumentDescriptionAsCString(arg_type: "lldb::CommandArgumentType const") -> "char const *": |
| r"""SBCommandInterpreter_GetArgumentDescriptionAsCString(lldb::CommandArgumentType const arg_type) -> char const *""" |
| return _lldb.SBCommandInterpreter_GetArgumentDescriptionAsCString(arg_type) |
| |
| def SBCommandInterpreter_EventIsCommandInterpreterEvent(event: "SBEvent") -> "bool": |
| r"""SBCommandInterpreter_EventIsCommandInterpreterEvent(SBEvent event) -> bool""" |
| return _lldb.SBCommandInterpreter_EventIsCommandInterpreterEvent(event) |
| |
| def SBCommandInterpreter_GetBroadcasterClass() -> "char const *": |
| r"""SBCommandInterpreter_GetBroadcasterClass() -> char const *""" |
| return _lldb.SBCommandInterpreter_GetBroadcasterClass() |
| |
| class SBCommandInterpreterRunOptions(object): |
| r""" |
| SBCommandInterpreterRunOptions controls how the RunCommandInterpreter runs the code it is fed. |
| |
| A default SBCommandInterpreterRunOptions object has: |
| |
| * StopOnContinue: false |
| * StopOnError: false |
| * StopOnCrash: false |
| * EchoCommands: true |
| * PrintResults: true |
| * PrintErrors: true |
| * AddToHistory: true |
| |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self): |
| r"""__init__(SBCommandInterpreterRunOptions self) -> SBCommandInterpreterRunOptions""" |
| _lldb.SBCommandInterpreterRunOptions_swiginit(self, _lldb.new_SBCommandInterpreterRunOptions()) |
| __swig_destroy__ = _lldb.delete_SBCommandInterpreterRunOptions |
| |
| def GetStopOnContinue(self) -> "bool": |
| r"""GetStopOnContinue(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetStopOnContinue(self) |
| |
| def SetStopOnContinue(self, arg2: "bool") -> "void": |
| r"""SetStopOnContinue(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetStopOnContinue(self, arg2) |
| |
| def GetStopOnError(self) -> "bool": |
| r"""GetStopOnError(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetStopOnError(self) |
| |
| def SetStopOnError(self, arg2: "bool") -> "void": |
| r"""SetStopOnError(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetStopOnError(self, arg2) |
| |
| def GetStopOnCrash(self) -> "bool": |
| r"""GetStopOnCrash(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetStopOnCrash(self) |
| |
| def SetStopOnCrash(self, arg2: "bool") -> "void": |
| r"""SetStopOnCrash(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetStopOnCrash(self, arg2) |
| |
| def GetEchoCommands(self) -> "bool": |
| r"""GetEchoCommands(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetEchoCommands(self) |
| |
| def SetEchoCommands(self, arg2: "bool") -> "void": |
| r"""SetEchoCommands(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetEchoCommands(self, arg2) |
| |
| def GetPrintResults(self) -> "bool": |
| r"""GetPrintResults(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetPrintResults(self) |
| |
| def SetPrintResults(self, arg2: "bool") -> "void": |
| r"""SetPrintResults(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetPrintResults(self, arg2) |
| |
| def GetPrintErrors(self) -> "bool": |
| r"""GetPrintErrors(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetPrintErrors(self) |
| |
| def SetPrintErrors(self, arg2: "bool") -> "void": |
| r"""SetPrintErrors(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetPrintErrors(self, arg2) |
| |
| def GetAddToHistory(self) -> "bool": |
| r"""GetAddToHistory(SBCommandInterpreterRunOptions self) -> bool""" |
| return _lldb.SBCommandInterpreterRunOptions_GetAddToHistory(self) |
| |
| def SetAddToHistory(self, arg2: "bool") -> "void": |
| r"""SetAddToHistory(SBCommandInterpreterRunOptions self, bool arg2)""" |
| return _lldb.SBCommandInterpreterRunOptions_SetAddToHistory(self, arg2) |
| |
| # Register SBCommandInterpreterRunOptions in _lldb: |
| _lldb.SBCommandInterpreterRunOptions_swigregister(SBCommandInterpreterRunOptions) |
| |
| class SBCommandReturnObject(object): |
| r""" |
| Represents a container which holds the result from command execution. |
| It works with :py:class:`SBCommandInterpreter.HandleCommand()` to encapsulate the result |
| of command execution. |
| |
| See :py:class:`SBCommandInterpreter` for example usage of SBCommandReturnObject. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBCommandReturnObject self) -> SBCommandReturnObject |
| __init__(SBCommandReturnObject self, SBCommandReturnObject rhs) -> SBCommandReturnObject |
| """ |
| _lldb.SBCommandReturnObject_swiginit(self, _lldb.new_SBCommandReturnObject(*args)) |
| __swig_destroy__ = _lldb.delete_SBCommandReturnObject |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBCommandReturnObject self) -> bool""" |
| return _lldb.SBCommandReturnObject_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBCommandReturnObject___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetOutputSize(self) -> "size_t": |
| r"""GetOutputSize(SBCommandReturnObject self) -> size_t""" |
| return _lldb.SBCommandReturnObject_GetOutputSize(self) |
| |
| def GetErrorSize(self) -> "size_t": |
| r"""GetErrorSize(SBCommandReturnObject self) -> size_t""" |
| return _lldb.SBCommandReturnObject_GetErrorSize(self) |
| |
| def GetOutput(self, *args) -> "char const *": |
| r""" |
| GetOutput(SBCommandReturnObject self) -> char const |
| GetOutput(SBCommandReturnObject self, bool only_if_no_immediate) -> char const * |
| """ |
| return _lldb.SBCommandReturnObject_GetOutput(self, *args) |
| |
| def GetError(self, *args) -> "char const *": |
| r""" |
| GetError(SBCommandReturnObject self) -> char const |
| GetError(SBCommandReturnObject self, bool if_no_immediate) -> char const * |
| """ |
| return _lldb.SBCommandReturnObject_GetError(self, *args) |
| |
| def PutOutput(self, *args) -> "size_t": |
| r""" |
| PutOutput(SBCommandReturnObject self, SBFile file) -> size_t |
| PutOutput(SBCommandReturnObject self, lldb::FileSP BORROWED) -> size_t |
| """ |
| return _lldb.SBCommandReturnObject_PutOutput(self, *args) |
| |
| def PutError(self, *args) -> "size_t": |
| r""" |
| PutError(SBCommandReturnObject self, SBFile file) -> size_t |
| PutError(SBCommandReturnObject self, lldb::FileSP BORROWED) -> size_t |
| """ |
| return _lldb.SBCommandReturnObject_PutError(self, *args) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBCommandReturnObject self)""" |
| return _lldb.SBCommandReturnObject_Clear(self) |
| |
| def SetStatus(self, status: "lldb::ReturnStatus") -> "void": |
| r"""SetStatus(SBCommandReturnObject self, lldb::ReturnStatus status)""" |
| return _lldb.SBCommandReturnObject_SetStatus(self, status) |
| |
| def SetError(self, *args) -> "void": |
| r""" |
| SetError(SBCommandReturnObject self, SBError error, char const * fallback_error_cstr=None) |
| SetError(SBCommandReturnObject self, char const * error_cstr) |
| """ |
| return _lldb.SBCommandReturnObject_SetError(self, *args) |
| |
| def GetStatus(self) -> "lldb::ReturnStatus": |
| r"""GetStatus(SBCommandReturnObject self) -> lldb::ReturnStatus""" |
| return _lldb.SBCommandReturnObject_GetStatus(self) |
| |
| def Succeeded(self) -> "bool": |
| r"""Succeeded(SBCommandReturnObject self) -> bool""" |
| return _lldb.SBCommandReturnObject_Succeeded(self) |
| |
| def HasResult(self) -> "bool": |
| r"""HasResult(SBCommandReturnObject self) -> bool""" |
| return _lldb.SBCommandReturnObject_HasResult(self) |
| |
| def AppendMessage(self, message: "char const *") -> "void": |
| r"""AppendMessage(SBCommandReturnObject self, char const * message)""" |
| return _lldb.SBCommandReturnObject_AppendMessage(self, message) |
| |
| def AppendWarning(self, message: "char const *") -> "void": |
| r"""AppendWarning(SBCommandReturnObject self, char const * message)""" |
| return _lldb.SBCommandReturnObject_AppendWarning(self, message) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBCommandReturnObject self, SBStream description) -> bool""" |
| return _lldb.SBCommandReturnObject_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBCommandReturnObject self) -> std::string""" |
| return _lldb.SBCommandReturnObject___str__(self) |
| |
| def SetImmediateOutputFile(self, *args) -> "void": |
| r""" |
| SetImmediateOutputFile(SBCommandReturnObject self, SBFile file) |
| SetImmediateOutputFile(SBCommandReturnObject self, lldb::FileSP BORROWED) |
| SetImmediateOutputFile(SBCommandReturnObject self, lldb::FileSP BORROWED, bool transfer_ownership) |
| """ |
| return _lldb.SBCommandReturnObject_SetImmediateOutputFile(self, *args) |
| |
| def SetImmediateErrorFile(self, *args) -> "void": |
| r""" |
| SetImmediateErrorFile(SBCommandReturnObject self, SBFile file) |
| SetImmediateErrorFile(SBCommandReturnObject self, lldb::FileSP BORROWED) |
| SetImmediateErrorFile(SBCommandReturnObject self, lldb::FileSP BORROWED, bool transfer_ownership) |
| """ |
| return _lldb.SBCommandReturnObject_SetImmediateErrorFile(self, *args) |
| |
| def PutCString(self, string: "char const *") -> "void": |
| r"""PutCString(SBCommandReturnObject self, char const * string)""" |
| return _lldb.SBCommandReturnObject_PutCString(self, string) |
| |
| def Print(self, str: "char const *") -> "void": |
| r"""Print(SBCommandReturnObject self, char const * str)""" |
| return _lldb.SBCommandReturnObject_Print(self, str) |
| |
| def write(self, str: "char const *") -> "void": |
| r"""write(SBCommandReturnObject self, char const * str)""" |
| return _lldb.SBCommandReturnObject_write(self, str) |
| |
| def flush(self) -> "void": |
| r"""flush(SBCommandReturnObject self)""" |
| return _lldb.SBCommandReturnObject_flush(self) |
| |
| # Register SBCommandReturnObject in _lldb: |
| _lldb.SBCommandReturnObject_swigregister(SBCommandReturnObject) |
| |
| class SBCommunication(object): |
| r"""Allows sending/receiving data.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| eBroadcastBitDisconnected = _lldb.SBCommunication_eBroadcastBitDisconnected |
| |
| eBroadcastBitReadThreadGotBytes = _lldb.SBCommunication_eBroadcastBitReadThreadGotBytes |
| |
| eBroadcastBitReadThreadDidExit = _lldb.SBCommunication_eBroadcastBitReadThreadDidExit |
| |
| eBroadcastBitReadThreadShouldExit = _lldb.SBCommunication_eBroadcastBitReadThreadShouldExit |
| |
| eBroadcastBitPacketAvailable = _lldb.SBCommunication_eBroadcastBitPacketAvailable |
| |
| eAllEventBits = _lldb.SBCommunication_eAllEventBits |
| |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBCommunication self) -> SBCommunication |
| __init__(SBCommunication self, char const * broadcaster_name) -> SBCommunication |
| """ |
| _lldb.SBCommunication_swiginit(self, _lldb.new_SBCommunication(*args)) |
| __swig_destroy__ = _lldb.delete_SBCommunication |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBCommunication___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetBroadcaster(self) -> "lldb::SBBroadcaster": |
| r"""GetBroadcaster(SBCommunication self) -> SBBroadcaster""" |
| return _lldb.SBCommunication_GetBroadcaster(self) |
| |
| @staticmethod |
| def GetBroadcasterClass() -> "char const *": |
| r"""GetBroadcasterClass() -> char const *""" |
| return _lldb.SBCommunication_GetBroadcasterClass() |
| |
| def AdoptFileDesriptor(self, fd: "int", owns_fd: "bool") -> "lldb::ConnectionStatus": |
| r"""AdoptFileDesriptor(SBCommunication self, int fd, bool owns_fd) -> lldb::ConnectionStatus""" |
| return _lldb.SBCommunication_AdoptFileDesriptor(self, fd, owns_fd) |
| |
| def Connect(self, url: "char const *") -> "lldb::ConnectionStatus": |
| r"""Connect(SBCommunication self, char const * url) -> lldb::ConnectionStatus""" |
| return _lldb.SBCommunication_Connect(self, url) |
| |
| def Disconnect(self) -> "lldb::ConnectionStatus": |
| r"""Disconnect(SBCommunication self) -> lldb::ConnectionStatus""" |
| return _lldb.SBCommunication_Disconnect(self) |
| |
| def IsConnected(self) -> "bool": |
| r"""IsConnected(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_IsConnected(self) |
| |
| def GetCloseOnEOF(self) -> "bool": |
| r"""GetCloseOnEOF(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_GetCloseOnEOF(self) |
| |
| def SetCloseOnEOF(self, b: "bool") -> "void": |
| r"""SetCloseOnEOF(SBCommunication self, bool b)""" |
| return _lldb.SBCommunication_SetCloseOnEOF(self, b) |
| |
| def Read(self, dst: "void *", dst_len: "size_t", timeout_usec: "uint32_t", status: "lldb::ConnectionStatus &") -> "size_t": |
| r"""Read(SBCommunication self, void * dst, size_t dst_len, uint32_t timeout_usec, lldb::ConnectionStatus & status) -> size_t""" |
| return _lldb.SBCommunication_Read(self, dst, dst_len, timeout_usec, status) |
| |
| def Write(self, src: "void const *", src_len: "size_t", status: "lldb::ConnectionStatus &") -> "size_t": |
| r"""Write(SBCommunication self, void const * src, size_t src_len, lldb::ConnectionStatus & status) -> size_t""" |
| return _lldb.SBCommunication_Write(self, src, src_len, status) |
| |
| def ReadThreadStart(self) -> "bool": |
| r"""ReadThreadStart(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_ReadThreadStart(self) |
| |
| def ReadThreadStop(self) -> "bool": |
| r"""ReadThreadStop(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_ReadThreadStop(self) |
| |
| def ReadThreadIsRunning(self) -> "bool": |
| r"""ReadThreadIsRunning(SBCommunication self) -> bool""" |
| return _lldb.SBCommunication_ReadThreadIsRunning(self) |
| |
| def SetReadThreadBytesReceivedCallback(self, callback: "lldb::SBCommunication::ReadThreadBytesReceived", callback_baton: "void *") -> "bool": |
| r"""SetReadThreadBytesReceivedCallback(SBCommunication self, lldb::SBCommunication::ReadThreadBytesReceived callback, void * callback_baton) -> bool""" |
| return _lldb.SBCommunication_SetReadThreadBytesReceivedCallback(self, callback, callback_baton) |
| |
| # Register SBCommunication in _lldb: |
| _lldb.SBCommunication_swigregister(SBCommunication) |
| |
| def SBCommunication_GetBroadcasterClass() -> "char const *": |
| r"""SBCommunication_GetBroadcasterClass() -> char const *""" |
| return _lldb.SBCommunication_GetBroadcasterClass() |
| |
| class SBCompileUnit(object): |
| r""" |
| 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 :py:class:`SBSymbolContext` and :py:class:`SBLineEntry` |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBCompileUnit self) -> SBCompileUnit |
| __init__(SBCompileUnit self, SBCompileUnit rhs) -> SBCompileUnit |
| """ |
| _lldb.SBCompileUnit_swiginit(self, _lldb.new_SBCompileUnit(*args)) |
| __swig_destroy__ = _lldb.delete_SBCompileUnit |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBCompileUnit self) -> bool""" |
| return _lldb.SBCompileUnit_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBCompileUnit___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetFileSpec(SBCompileUnit self) -> SBFileSpec""" |
| return _lldb.SBCompileUnit_GetFileSpec(self) |
| |
| def GetNumLineEntries(self) -> "uint32_t": |
| r"""GetNumLineEntries(SBCompileUnit self) -> uint32_t""" |
| return _lldb.SBCompileUnit_GetNumLineEntries(self) |
| |
| def GetLineEntryAtIndex(self, idx: "uint32_t") -> "lldb::SBLineEntry": |
| r"""GetLineEntryAtIndex(SBCompileUnit self, uint32_t idx) -> SBLineEntry""" |
| return _lldb.SBCompileUnit_GetLineEntryAtIndex(self, idx) |
| |
| def FindLineEntryIndex(self, *args) -> "uint32_t": |
| r""" |
| FindLineEntryIndex(SBCompileUnit self, uint32_t start_idx, uint32_t line, SBFileSpec inline_file_spec) -> uint32_t |
| FindLineEntryIndex(SBCompileUnit self, uint32_t start_idx, uint32_t line, SBFileSpec inline_file_spec, bool exact) -> uint32_t |
| """ |
| return _lldb.SBCompileUnit_FindLineEntryIndex(self, *args) |
| |
| def GetSupportFileAtIndex(self, idx: "uint32_t") -> "lldb::SBFileSpec": |
| r"""GetSupportFileAtIndex(SBCompileUnit self, uint32_t idx) -> SBFileSpec""" |
| return _lldb.SBCompileUnit_GetSupportFileAtIndex(self, idx) |
| |
| def GetNumSupportFiles(self) -> "uint32_t": |
| r"""GetNumSupportFiles(SBCompileUnit self) -> uint32_t""" |
| return _lldb.SBCompileUnit_GetNumSupportFiles(self) |
| |
| def FindSupportFileIndex(self, start_idx: "uint32_t", sb_file: "SBFileSpec", full: "bool") -> "uint32_t": |
| r"""FindSupportFileIndex(SBCompileUnit self, uint32_t start_idx, SBFileSpec sb_file, bool full) -> uint32_t""" |
| return _lldb.SBCompileUnit_FindSupportFileIndex(self, start_idx, sb_file, full) |
| |
| def GetTypes(self, *args) -> "lldb::SBTypeList": |
| r""" |
| GetTypes(SBCompileUnit self, uint32_t type_mask=eTypeClassAny) -> SBTypeList |
| |
| Get all types matching 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 type_mask |
| """ |
| return _lldb.SBCompileUnit_GetTypes(self, *args) |
| |
| def GetLanguage(self) -> "lldb::LanguageType": |
| r"""GetLanguage(SBCompileUnit self) -> lldb::LanguageType""" |
| return _lldb.SBCompileUnit_GetLanguage(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBCompileUnit self, SBStream description) -> bool""" |
| return _lldb.SBCompileUnit_GetDescription(self, description) |
| |
| def __eq__(self, rhs: "SBCompileUnit") -> "bool": |
| r"""__eq__(SBCompileUnit self, SBCompileUnit rhs) -> bool""" |
| return _lldb.SBCompileUnit___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBCompileUnit") -> "bool": |
| r"""__ne__(SBCompileUnit self, SBCompileUnit rhs) -> bool""" |
| return _lldb.SBCompileUnit___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBCompileUnit self) -> std::string""" |
| return _lldb.SBCompileUnit___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all line entries in a lldb.SBCompileUnit object.''' |
| return lldb_iter(self, 'GetNumLineEntries', 'GetLineEntryAtIndex') |
| |
| def __len__(self): |
| '''Return the number of line entries in a lldb.SBCompileUnit |
| object.''' |
| return self.GetNumLineEntries() |
| |
| 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.''') |
| 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.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBCompileUnit in _lldb: |
| _lldb.SBCompileUnit_swigregister(SBCompileUnit) |
| |
| class SBData(object): |
| r"""Represents a data buffer.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBData self) -> SBData |
| __init__(SBData self, SBData rhs) -> SBData |
| """ |
| _lldb.SBData_swiginit(self, _lldb.new_SBData(*args)) |
| __swig_destroy__ = _lldb.delete_SBData |
| |
| def GetAddressByteSize(self) -> "uint8_t": |
| r"""GetAddressByteSize(SBData self) -> uint8_t""" |
| return _lldb.SBData_GetAddressByteSize(self) |
| |
| def SetAddressByteSize(self, addr_byte_size: "uint8_t") -> "void": |
| r"""SetAddressByteSize(SBData self, uint8_t addr_byte_size)""" |
| return _lldb.SBData_SetAddressByteSize(self, addr_byte_size) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBData self)""" |
| return _lldb.SBData_Clear(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBData self) -> bool""" |
| return _lldb.SBData_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBData___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetByteSize(self) -> "size_t": |
| r"""GetByteSize(SBData self) -> size_t""" |
| return _lldb.SBData_GetByteSize(self) |
| |
| def GetByteOrder(self) -> "lldb::ByteOrder": |
| r"""GetByteOrder(SBData self) -> lldb::ByteOrder""" |
| return _lldb.SBData_GetByteOrder(self) |
| |
| def SetByteOrder(self, endian: "lldb::ByteOrder") -> "void": |
| r"""SetByteOrder(SBData self, lldb::ByteOrder endian)""" |
| return _lldb.SBData_SetByteOrder(self, endian) |
| |
| def GetFloat(self, error: "SBError", offset: "lldb::offset_t") -> "float": |
| r"""GetFloat(SBData self, SBError error, lldb::offset_t offset) -> float""" |
| return _lldb.SBData_GetFloat(self, error, offset) |
| |
| def GetDouble(self, error: "SBError", offset: "lldb::offset_t") -> "double": |
| r"""GetDouble(SBData self, SBError error, lldb::offset_t offset) -> double""" |
| return _lldb.SBData_GetDouble(self, error, offset) |
| |
| def GetLongDouble(self, error: "SBError", offset: "lldb::offset_t") -> "long double": |
| r"""GetLongDouble(SBData self, SBError error, lldb::offset_t offset) -> long double""" |
| return _lldb.SBData_GetLongDouble(self, error, offset) |
| |
| def GetAddress(self, error: "SBError", offset: "lldb::offset_t") -> "lldb::addr_t": |
| r"""GetAddress(SBData self, SBError error, lldb::offset_t offset) -> lldb::addr_t""" |
| return _lldb.SBData_GetAddress(self, error, offset) |
| |
| def GetUnsignedInt8(self, error: "SBError", offset: "lldb::offset_t") -> "uint8_t": |
| r"""GetUnsignedInt8(SBData self, SBError error, lldb::offset_t offset) -> uint8_t""" |
| return _lldb.SBData_GetUnsignedInt8(self, error, offset) |
| |
| def GetUnsignedInt16(self, error: "SBError", offset: "lldb::offset_t") -> "uint16_t": |
| r"""GetUnsignedInt16(SBData self, SBError error, lldb::offset_t offset) -> uint16_t""" |
| return _lldb.SBData_GetUnsignedInt16(self, error, offset) |
| |
| def GetUnsignedInt32(self, error: "SBError", offset: "lldb::offset_t") -> "uint32_t": |
| r"""GetUnsignedInt32(SBData self, SBError error, lldb::offset_t offset) -> uint32_t""" |
| return _lldb.SBData_GetUnsignedInt32(self, error, offset) |
| |
| def GetUnsignedInt64(self, error: "SBError", offset: "lldb::offset_t") -> "uint64_t": |
| r"""GetUnsignedInt64(SBData self, SBError error, lldb::offset_t offset) -> uint64_t""" |
| return _lldb.SBData_GetUnsignedInt64(self, error, offset) |
| |
| def GetSignedInt8(self, error: "SBError", offset: "lldb::offset_t") -> "int8_t": |
| r"""GetSignedInt8(SBData self, SBError error, lldb::offset_t offset) -> int8_t""" |
| return _lldb.SBData_GetSignedInt8(self, error, offset) |
| |
| def GetSignedInt16(self, error: "SBError", offset: "lldb::offset_t") -> "int16_t": |
| r"""GetSignedInt16(SBData self, SBError error, lldb::offset_t offset) -> int16_t""" |
| return _lldb.SBData_GetSignedInt16(self, error, offset) |
| |
| def GetSignedInt32(self, error: "SBError", offset: "lldb::offset_t") -> "int32_t": |
| r"""GetSignedInt32(SBData self, SBError error, lldb::offset_t offset) -> int32_t""" |
| return _lldb.SBData_GetSignedInt32(self, error, offset) |
| |
| def GetSignedInt64(self, error: "SBError", offset: "lldb::offset_t") -> "int64_t": |
| r"""GetSignedInt64(SBData self, SBError error, lldb::offset_t offset) -> int64_t""" |
| return _lldb.SBData_GetSignedInt64(self, error, offset) |
| |
| def GetString(self, error: "SBError", offset: "lldb::offset_t") -> "char const *": |
| r"""GetString(SBData self, SBError error, lldb::offset_t offset) -> char const *""" |
| return _lldb.SBData_GetString(self, error, offset) |
| |
| def GetDescription(self, description: "SBStream", base_addr: "lldb::addr_t") -> "bool": |
| r"""GetDescription(SBData self, SBStream description, lldb::addr_t base_addr) -> bool""" |
| return _lldb.SBData_GetDescription(self, description, base_addr) |
| |
| def ReadRawData(self, error: "SBError", offset: "lldb::offset_t", buf: "void *") -> "size_t": |
| r"""ReadRawData(SBData self, SBError error, lldb::offset_t offset, void * buf) -> size_t""" |
| return _lldb.SBData_ReadRawData(self, error, offset, buf) |
| |
| def SetData(self, error: "SBError", buf: "void const *", endian: "lldb::ByteOrder", addr_size: "uint8_t") -> "void": |
| r"""SetData(SBData self, SBError error, void const * buf, lldb::ByteOrder endian, uint8_t addr_size)""" |
| return _lldb.SBData_SetData(self, error, buf, endian, addr_size) |
| |
| def SetDataWithOwnership(self, error: "SBError", buf: "void const *", endian: "lldb::ByteOrder", addr_size: "uint8_t") -> "void": |
| r"""SetDataWithOwnership(SBData self, SBError error, void const * buf, lldb::ByteOrder endian, uint8_t addr_size)""" |
| return _lldb.SBData_SetDataWithOwnership(self, error, buf, endian, addr_size) |
| |
| def Append(self, rhs: "SBData") -> "bool": |
| r"""Append(SBData self, SBData rhs) -> bool""" |
| return _lldb.SBData_Append(self, rhs) |
| |
| @staticmethod |
| def CreateDataFromCString(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", data: "char const *") -> "lldb::SBData": |
| r"""CreateDataFromCString(lldb::ByteOrder endian, uint32_t addr_byte_size, char const * data) -> SBData""" |
| return _lldb.SBData_CreateDataFromCString(endian, addr_byte_size, data) |
| |
| @staticmethod |
| def CreateDataFromUInt64Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "uint64_t *") -> "lldb::SBData": |
| r"""CreateDataFromUInt64Array(lldb::ByteOrder endian, uint32_t addr_byte_size, uint64_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromUInt64Array(endian, addr_byte_size, array) |
| |
| @staticmethod |
| def CreateDataFromUInt32Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "uint32_t *") -> "lldb::SBData": |
| r"""CreateDataFromUInt32Array(lldb::ByteOrder endian, uint32_t addr_byte_size, uint32_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromUInt32Array(endian, addr_byte_size, array) |
| |
| @staticmethod |
| def CreateDataFromSInt64Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "int64_t *") -> "lldb::SBData": |
| r"""CreateDataFromSInt64Array(lldb::ByteOrder endian, uint32_t addr_byte_size, int64_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromSInt64Array(endian, addr_byte_size, array) |
| |
| @staticmethod |
| def CreateDataFromSInt32Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "int32_t *") -> "lldb::SBData": |
| r"""CreateDataFromSInt32Array(lldb::ByteOrder endian, uint32_t addr_byte_size, int32_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromSInt32Array(endian, addr_byte_size, array) |
| |
| @staticmethod |
| def CreateDataFromDoubleArray(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "double *") -> "lldb::SBData": |
| r"""CreateDataFromDoubleArray(lldb::ByteOrder endian, uint32_t addr_byte_size, double * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromDoubleArray(endian, addr_byte_size, array) |
| |
| def SetDataFromCString(self, data: "char const *") -> "bool": |
| r"""SetDataFromCString(SBData self, char const * data) -> bool""" |
| return _lldb.SBData_SetDataFromCString(self, data) |
| |
| def SetDataFromUInt64Array(self, array: "uint64_t *") -> "bool": |
| r"""SetDataFromUInt64Array(SBData self, uint64_t * array) -> bool""" |
| return _lldb.SBData_SetDataFromUInt64Array(self, array) |
| |
| def SetDataFromUInt32Array(self, array: "uint32_t *") -> "bool": |
| r"""SetDataFromUInt32Array(SBData self, uint32_t * array) -> bool""" |
| return _lldb.SBData_SetDataFromUInt32Array(self, array) |
| |
| def SetDataFromSInt64Array(self, array: "int64_t *") -> "bool": |
| r"""SetDataFromSInt64Array(SBData self, int64_t * array) -> bool""" |
| return _lldb.SBData_SetDataFromSInt64Array(self, array) |
| |
| def SetDataFromSInt32Array(self, array: "int32_t *") -> "bool": |
| r"""SetDataFromSInt32Array(SBData self, int32_t * array) -> bool""" |
| return _lldb.SBData_SetDataFromSInt32Array(self, array) |
| |
| def SetDataFromDoubleArray(self, array: "double *") -> "bool": |
| r"""SetDataFromDoubleArray(SBData self, double * array) -> bool""" |
| return _lldb.SBData_SetDataFromDoubleArray(self, array) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBData self) -> std::string""" |
| return _lldb.SBData___str__(self) |
| |
| |
| class read_data_helper: |
| def __init__(self, sbdata, readerfunc, item_size): |
| self.sbdata = sbdata |
| self.readerfunc = readerfunc |
| self.item_size = item_size |
| def __getitem__(self,key): |
| if isinstance(key,slice): |
| list = [] |
| for x in range(*key.indices(self.__len__())): |
| list.append(self.__getitem__(x)) |
| return list |
| if not (isinstance(key,six.integer_types)): |
| raise TypeError('must be int') |
| key = key * self.item_size # SBData uses byte-based indexes, but we want to use itemsize-based indexes here |
| error = SBError() |
| my_data = self.readerfunc(self.sbdata,error,key) |
| if error.Fail(): |
| raise IndexError(error.GetCString()) |
| else: |
| return my_data |
| def __len__(self): |
| return int(self.sbdata.GetByteSize()/self.item_size) |
| def all(self): |
| return self[0:len(self)] |
| |
| @classmethod |
| def CreateDataFromInt (cls, value, size = None, target = None, ptr_size = None, endian = None): |
| import sys |
| lldbmodule = sys.modules[cls.__module__] |
| lldbdict = lldbmodule.__dict__ |
| if 'target' in lldbdict: |
| lldbtarget = lldbdict['target'] |
| else: |
| lldbtarget = None |
| if target == None and lldbtarget != None and lldbtarget.IsValid(): |
| target = lldbtarget |
| if ptr_size == None: |
| if target and target.IsValid(): |
| ptr_size = target.addr_size |
| else: |
| ptr_size = 8 |
| if endian == None: |
| if target and target.IsValid(): |
| endian = target.byte_order |
| else: |
| endian = lldbdict['eByteOrderLittle'] |
| if size == None: |
| if value > 2147483647: |
| size = 8 |
| elif value < -2147483648: |
| size = 8 |
| elif value > 4294967295: |
| size = 8 |
| else: |
| size = 4 |
| if size == 4: |
| if value < 0: |
| return SBData().CreateDataFromSInt32Array(endian, ptr_size, [value]) |
| return SBData().CreateDataFromUInt32Array(endian, ptr_size, [value]) |
| if size == 8: |
| if value < 0: |
| return SBData().CreateDataFromSInt64Array(endian, ptr_size, [value]) |
| return SBData().CreateDataFromUInt64Array(endian, ptr_size, [value]) |
| return None |
| |
| def _make_helper(self, sbdata, getfunc, itemsize): |
| return self.read_data_helper(sbdata, getfunc, itemsize) |
| |
| def _make_helper_uint8(self): |
| return self._make_helper(self, SBData.GetUnsignedInt8, 1) |
| |
| def _make_helper_uint16(self): |
| return self._make_helper(self, SBData.GetUnsignedInt16, 2) |
| |
| def _make_helper_uint32(self): |
| return self._make_helper(self, SBData.GetUnsignedInt32, 4) |
| |
| def _make_helper_uint64(self): |
| return self._make_helper(self, SBData.GetUnsignedInt64, 8) |
| |
| def _make_helper_sint8(self): |
| return self._make_helper(self, SBData.GetSignedInt8, 1) |
| |
| def _make_helper_sint16(self): |
| return self._make_helper(self, SBData.GetSignedInt16, 2) |
| |
| def _make_helper_sint32(self): |
| return self._make_helper(self, SBData.GetSignedInt32, 4) |
| |
| def _make_helper_sint64(self): |
| return self._make_helper(self, SBData.GetSignedInt64, 8) |
| |
| def _make_helper_float(self): |
| return self._make_helper(self, SBData.GetFloat, 4) |
| |
| def _make_helper_double(self): |
| return self._make_helper(self, SBData.GetDouble, 8) |
| |
| def _read_all_uint8(self): |
| return self._make_helper_uint8().all() |
| |
| def _read_all_uint16(self): |
| return self._make_helper_uint16().all() |
| |
| def _read_all_uint32(self): |
| return self._make_helper_uint32().all() |
| |
| def _read_all_uint64(self): |
| return self._make_helper_uint64().all() |
| |
| def _read_all_sint8(self): |
| return self._make_helper_sint8().all() |
| |
| def _read_all_sint16(self): |
| return self._make_helper_sint16().all() |
| |
| def _read_all_sint32(self): |
| return self._make_helper_sint32().all() |
| |
| def _read_all_sint64(self): |
| return self._make_helper_sint64().all() |
| |
| def _read_all_float(self): |
| return self._make_helper_float().all() |
| |
| def _read_all_double(self): |
| return self._make_helper_double().all() |
| |
| uint8 = property(_make_helper_uint8, None, doc='''A read only property that returns an array-like object out of which you can read uint8 values.''') |
| uint16 = property(_make_helper_uint16, None, doc='''A read only property that returns an array-like object out of which you can read uint16 values.''') |
| uint32 = property(_make_helper_uint32, None, doc='''A read only property that returns an array-like object out of which you can read uint32 values.''') |
| uint64 = property(_make_helper_uint64, None, doc='''A read only property that returns an array-like object out of which you can read uint64 values.''') |
| sint8 = property(_make_helper_sint8, None, doc='''A read only property that returns an array-like object out of which you can read sint8 values.''') |
| sint16 = property(_make_helper_sint16, None, doc='''A read only property that returns an array-like object out of which you can read sint16 values.''') |
| sint32 = property(_make_helper_sint32, None, doc='''A read only property that returns an array-like object out of which you can read sint32 values.''') |
| sint64 = property(_make_helper_sint64, None, doc='''A read only property that returns an array-like object out of which you can read sint64 values.''') |
| float = property(_make_helper_float, None, doc='''A read only property that returns an array-like object out of which you can read float values.''') |
| double = property(_make_helper_double, None, doc='''A read only property that returns an array-like object out of which you can read double values.''') |
| uint8s = property(_read_all_uint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint8 values.''') |
| uint16s = property(_read_all_uint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint16 values.''') |
| uint32s = property(_read_all_uint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint32 values.''') |
| uint64s = property(_read_all_uint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint64 values.''') |
| sint8s = property(_read_all_sint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint8 values.''') |
| sint16s = property(_read_all_sint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint16 values.''') |
| sint32s = property(_read_all_sint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint32 values.''') |
| sint64s = property(_read_all_sint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint64 values.''') |
| floats = property(_read_all_float, None, doc='''A read only property that returns an array with all the contents of this SBData represented as float values.''') |
| doubles = property(_read_all_double, None, doc='''A read only property that returns an array with all the contents of this SBData represented as double values.''') |
| byte_order = property(GetByteOrder, SetByteOrder, doc='''A read/write property getting and setting the endianness of this SBData (data.byte_order = lldb.eByteOrderLittle).''') |
| size = property(GetByteSize, None, doc='''A read only property that returns the size the same result as GetByteSize().''') |
| |
| |
| # Register SBData in _lldb: |
| _lldb.SBData_swigregister(SBData) |
| |
| def SBData_CreateDataFromCString(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", data: "char const *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromCString(lldb::ByteOrder endian, uint32_t addr_byte_size, char const * data) -> SBData""" |
| return _lldb.SBData_CreateDataFromCString(endian, addr_byte_size, data) |
| |
| def SBData_CreateDataFromUInt64Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "uint64_t *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromUInt64Array(lldb::ByteOrder endian, uint32_t addr_byte_size, uint64_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromUInt64Array(endian, addr_byte_size, array) |
| |
| def SBData_CreateDataFromUInt32Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "uint32_t *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromUInt32Array(lldb::ByteOrder endian, uint32_t addr_byte_size, uint32_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromUInt32Array(endian, addr_byte_size, array) |
| |
| def SBData_CreateDataFromSInt64Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "int64_t *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromSInt64Array(lldb::ByteOrder endian, uint32_t addr_byte_size, int64_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromSInt64Array(endian, addr_byte_size, array) |
| |
| def SBData_CreateDataFromSInt32Array(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "int32_t *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromSInt32Array(lldb::ByteOrder endian, uint32_t addr_byte_size, int32_t * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromSInt32Array(endian, addr_byte_size, array) |
| |
| def SBData_CreateDataFromDoubleArray(endian: "lldb::ByteOrder", addr_byte_size: "uint32_t", array: "double *") -> "lldb::SBData": |
| r"""SBData_CreateDataFromDoubleArray(lldb::ByteOrder endian, uint32_t addr_byte_size, double * array) -> SBData""" |
| return _lldb.SBData_CreateDataFromDoubleArray(endian, addr_byte_size, array) |
| |
| class SBDebugger(object): |
| r""" |
| SBDebugger is the primordial object that creates SBTargets and provides |
| access to them. It also manages the overall debugging experiences. |
| |
| For example (from example/disasm.py),:: |
| |
| import lldb |
| import os |
| import sys |
| |
| def disassemble_instructions (insts): |
| for i in insts: |
| print i |
| |
| ... |
| |
| # Create a new debugger instance |
| debugger = lldb.SBDebugger.Create() |
| |
| # When we step or continue, don't return from the function until the process |
| # stops. We do this by setting the async mode to false. |
| debugger.SetAsync (False) |
| |
| # Create a target from a file and arch |
| print('Creating a target for '%s'' % exe) |
| |
| target = debugger.CreateTargetWithFileAndArch (exe, lldb.LLDB_ARCH_DEFAULT) |
| |
| if target: |
| # If the target is valid set a breakpoint at main |
| main_bp = target.BreakpointCreateByName (fname, target.GetExecutable().GetFilename()); |
| |
| print main_bp |
| |
| # Launch the process. Since we specified synchronous mode, we won't return |
| # from this function until we hit the breakpoint at main |
| process = target.LaunchSimple (None, None, os.getcwd()) |
| |
| # Make sure the launch went ok |
| if process: |
| # Print some simple process info |
| state = process.GetState () |
| print process |
| if state == lldb.eStateStopped: |
| # Get the first thread |
| thread = process.GetThreadAtIndex (0) |
| if thread: |
| # Print some simple thread info |
| print thread |
| # Get the first frame |
| frame = thread.GetFrameAtIndex (0) |
| if frame: |
| # Print some simple frame info |
| print frame |
| function = frame.GetFunction() |
| # See if we have debug info (a function) |
| if function: |
| # We do have a function, print some info for the function |
| print function |
| # Now get all instructions for this function and print them |
| insts = function.GetInstructions(target) |
| disassemble_instructions (insts) |
| else: |
| # See if we have a symbol in the symbol table for where we stopped |
| symbol = frame.GetSymbol(); |
| if symbol: |
| # We do have a symbol, print some info for the symbol |
| print symbol |
| # Now get all instructions for this symbol and print them |
| insts = symbol.GetInstructions(target) |
| disassemble_instructions (insts) |
| |
| registerList = frame.GetRegisters() |
| print('Frame registers (size of register set = %d):' % registerList.GetSize()) |
| for value in registerList: |
| #print value |
| print('%s (number of children = %d):' % (value.GetName(), value.GetNumChildren())) |
| for child in value: |
| print('Name: ', child.GetName(), ' Value: ', child.GetValue()) |
| |
| print('Hit the breakpoint at main, enter to continue and wait for program to exit or 'Ctrl-D'/'quit' to terminate the program') |
| next = sys.stdin.readline() |
| if not next or next.rstrip('\n') == 'quit': |
| print('Terminating the inferior process...') |
| process.Kill() |
| else: |
| # Now continue to the program exit |
| process.Continue() |
| # When we return from the above function we will hopefully be at the |
| # program exit. Print out some process info |
| print process |
| elif state == lldb.eStateExited: |
| print('Didn't hit the breakpoint at main, program has exited...') |
| else: |
| print('Unexpected process state: %s, killing process...' % debugger.StateAsCString (state)) |
| process.Kill() |
| |
| Sometimes you need to create an empty target that will get filled in later. The most common use for this |
| is to attach to a process by name or pid where you don't know the executable up front. The most convenient way |
| to do this is: :: |
| |
| target = debugger.CreateTarget('') |
| error = lldb.SBError() |
| process = target.AttachToProcessWithName(debugger.GetListener(), 'PROCESS_NAME', False, error) |
| |
| or the equivalent arguments for :py:class:`SBTarget.AttachToProcessWithID` . |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def Initialize() -> "void": |
| r"""Initialize()""" |
| return _lldb.SBDebugger_Initialize() |
| |
| @staticmethod |
| def InitializeWithErrorHandling() -> "lldb::SBError": |
| r"""InitializeWithErrorHandling() -> SBError""" |
| return _lldb.SBDebugger_InitializeWithErrorHandling() |
| |
| @staticmethod |
| def Terminate() -> "void": |
| r"""Terminate()""" |
| return _lldb.SBDebugger_Terminate() |
| |
| @staticmethod |
| def Create(*args) -> "lldb::SBDebugger": |
| r""" |
| Create() -> SBDebugger |
| Create(bool source_init_files) -> SBDebugger |
| Create(bool source_init_files, lldb::LogOutputCallback log_callback) -> SBDebugger |
| """ |
| return _lldb.SBDebugger_Create(*args) |
| |
| @staticmethod |
| def Destroy(debugger: "SBDebugger") -> "void": |
| r"""Destroy(SBDebugger debugger)""" |
| return _lldb.SBDebugger_Destroy(debugger) |
| |
| @staticmethod |
| def MemoryPressureDetected() -> "void": |
| r"""MemoryPressureDetected()""" |
| return _lldb.SBDebugger_MemoryPressureDetected() |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBDebugger self) -> SBDebugger |
| __init__(SBDebugger self, SBDebugger rhs) -> SBDebugger |
| """ |
| _lldb.SBDebugger_swiginit(self, _lldb.new_SBDebugger(*args)) |
| __swig_destroy__ = _lldb.delete_SBDebugger |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBDebugger self) -> bool""" |
| return _lldb.SBDebugger_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBDebugger___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBDebugger self)""" |
| return _lldb.SBDebugger_Clear(self) |
| |
| def SetAsync(self, b: "bool") -> "void": |
| r"""SetAsync(SBDebugger self, bool b)""" |
| return _lldb.SBDebugger_SetAsync(self, b) |
| |
| def GetAsync(self) -> "bool": |
| r"""GetAsync(SBDebugger self) -> bool""" |
| return _lldb.SBDebugger_GetAsync(self) |
| |
| def SkipLLDBInitFiles(self, b: "bool") -> "void": |
| r"""SkipLLDBInitFiles(SBDebugger self, bool b)""" |
| return _lldb.SBDebugger_SkipLLDBInitFiles(self, b) |
| |
| def SetOutputFileHandle(self, file, transfer_ownership): |
| "DEPRECATED, use SetOutputFile" |
| if file is None: |
| import sys |
| file = sys.stdout |
| self.SetOutputFile(SBFile.Create(file, borrow=True)) |
| |
| def SetInputFileHandle(self, file, transfer_ownership): |
| "DEPRECATED, use SetInputFile" |
| if file is None: |
| import sys |
| file = sys.stdin |
| self.SetInputFile(SBFile.Create(file, borrow=True)) |
| |
| def SetErrorFileHandle(self, file, transfer_ownership): |
| "DEPRECATED, use SetErrorFile" |
| if file is None: |
| import sys |
| file = sys.stderr |
| self.SetErrorFile(SBFile.Create(file, borrow=True)) |
| |
| |
| def GetInputFileHandle(self) -> "lldb::FileSP": |
| r"""GetInputFileHandle(SBDebugger self) -> lldb::FileSP""" |
| return _lldb.SBDebugger_GetInputFileHandle(self) |
| |
| def GetOutputFileHandle(self) -> "lldb::FileSP": |
| r"""GetOutputFileHandle(SBDebugger self) -> lldb::FileSP""" |
| return _lldb.SBDebugger_GetOutputFileHandle(self) |
| |
| def GetErrorFileHandle(self) -> "lldb::FileSP": |
| r"""GetErrorFileHandle(SBDebugger self) -> lldb::FileSP""" |
| return _lldb.SBDebugger_GetErrorFileHandle(self) |
| |
| def SetInputString(self, data: "char const *") -> "lldb::SBError": |
| r"""SetInputString(SBDebugger self, char const * data) -> SBError""" |
| return _lldb.SBDebugger_SetInputString(self, data) |
| |
| def SetInputFile(self, *args) -> "lldb::SBError": |
| r""" |
| SetInputFile(SBDebugger self, SBFile file) -> SBError |
| SetInputFile(SBDebugger self, lldb::FileSP file) -> SBError |
| """ |
| return _lldb.SBDebugger_SetInputFile(self, *args) |
| |
| def SetOutputFile(self, *args) -> "lldb::SBError": |
| r""" |
| SetOutputFile(SBDebugger self, SBFile file) -> SBError |
| SetOutputFile(SBDebugger self, lldb::FileSP file) -> SBError |
| """ |
| return _lldb.SBDebugger_SetOutputFile(self, *args) |
| |
| def SetErrorFile(self, *args) -> "lldb::SBError": |
| r""" |
| SetErrorFile(SBDebugger self, SBFile file) -> SBError |
| SetErrorFile(SBDebugger self, lldb::FileSP file) -> SBError |
| """ |
| return _lldb.SBDebugger_SetErrorFile(self, *args) |
| |
| def GetInputFile(self) -> "lldb::SBFile": |
| r"""GetInputFile(SBDebugger self) -> SBFile""" |
| return _lldb.SBDebugger_GetInputFile(self) |
| |
| def GetOutputFile(self) -> "lldb::SBFile": |
| r"""GetOutputFile(SBDebugger self) -> SBFile""" |
| return _lldb.SBDebugger_GetOutputFile(self) |
| |
| def GetErrorFile(self) -> "lldb::SBFile": |
| r"""GetErrorFile(SBDebugger self) -> SBFile""" |
| return _lldb.SBDebugger_GetErrorFile(self) |
| |
| def GetCommandInterpreter(self) -> "lldb::SBCommandInterpreter": |
| r"""GetCommandInterpreter(SBDebugger self) -> SBCommandInterpreter""" |
| return _lldb.SBDebugger_GetCommandInterpreter(self) |
| |
| def HandleCommand(self, command: "char const *") -> "void": |
| r"""HandleCommand(SBDebugger self, char const * command)""" |
| return _lldb.SBDebugger_HandleCommand(self, command) |
| |
| def GetListener(self) -> "lldb::SBListener": |
| r"""GetListener(SBDebugger self) -> SBListener""" |
| return _lldb.SBDebugger_GetListener(self) |
| |
| def HandleProcessEvent(self, *args) -> "void": |
| r""" |
| HandleProcessEvent(SBDebugger self, SBProcess process, SBEvent event, SBFile out, SBFile err) |
| HandleProcessEvent(SBDebugger self, SBProcess process, SBEvent event, lldb::FileSP arg4, lldb::FileSP arg5) |
| """ |
| return _lldb.SBDebugger_HandleProcessEvent(self, *args) |
| |
| def CreateTargetWithFileAndTargetTriple(self, filename: "char const *", target_triple: "char const *") -> "lldb::SBTarget": |
| r"""CreateTargetWithFileAndTargetTriple(SBDebugger self, char const * filename, char const * target_triple) -> SBTarget""" |
| return _lldb.SBDebugger_CreateTargetWithFileAndTargetTriple(self, filename, target_triple) |
| |
| def CreateTargetWithFileAndArch(self, filename: "char const *", archname: "char const *") -> "lldb::SBTarget": |
| r"""CreateTargetWithFileAndArch(SBDebugger self, char const * filename, char const * archname) -> SBTarget""" |
| return _lldb.SBDebugger_CreateTargetWithFileAndArch(self, filename, archname) |
| |
| def CreateTarget(self, *args) -> "lldb::SBTarget": |
| r""" |
| CreateTarget(SBDebugger self, char const * filename, char const * target_triple, char const * platform_name, bool add_dependent_modules, SBError sb_error) -> SBTarget |
| CreateTarget(SBDebugger self, char const * filename) -> SBTarget |
| """ |
| return _lldb.SBDebugger_CreateTarget(self, *args) |
| |
| def GetDummyTarget(self) -> "lldb::SBTarget": |
| r""" |
| GetDummyTarget(SBDebugger self) -> SBTarget |
| The dummy target holds breakpoints and breakpoint names that will prime newly created targets. |
| """ |
| return _lldb.SBDebugger_GetDummyTarget(self) |
| |
| def DeleteTarget(self, target: "SBTarget") -> "bool": |
| r""" |
| DeleteTarget(SBDebugger self, SBTarget target) -> bool |
| Return true if target is deleted from the target list of the debugger. |
| """ |
| return _lldb.SBDebugger_DeleteTarget(self, target) |
| |
| def GetTargetAtIndex(self, idx: "uint32_t") -> "lldb::SBTarget": |
| r"""GetTargetAtIndex(SBDebugger self, uint32_t idx) -> SBTarget""" |
| return _lldb.SBDebugger_GetTargetAtIndex(self, idx) |
| |
| def GetIndexOfTarget(self, target: "SBTarget") -> "uint32_t": |
| r"""GetIndexOfTarget(SBDebugger self, SBTarget target) -> uint32_t""" |
| return _lldb.SBDebugger_GetIndexOfTarget(self, target) |
| |
| def FindTargetWithProcessID(self, pid: "lldb::pid_t") -> "lldb::SBTarget": |
| r"""FindTargetWithProcessID(SBDebugger self, lldb::pid_t pid) -> SBTarget""" |
| return _lldb.SBDebugger_FindTargetWithProcessID(self, pid) |
| |
| def FindTargetWithFileAndArch(self, filename: "char const *", arch: "char const *") -> "lldb::SBTarget": |
| r"""FindTargetWithFileAndArch(SBDebugger self, char const * filename, char const * arch) -> SBTarget""" |
| return _lldb.SBDebugger_FindTargetWithFileAndArch(self, filename, arch) |
| |
| def GetNumTargets(self) -> "uint32_t": |
| r"""GetNumTargets(SBDebugger self) -> uint32_t""" |
| return _lldb.SBDebugger_GetNumTargets(self) |
| |
| def GetSelectedTarget(self) -> "lldb::SBTarget": |
| r"""GetSelectedTarget(SBDebugger self) -> SBTarget""" |
| return _lldb.SBDebugger_GetSelectedTarget(self) |
| |
| def SetSelectedTarget(self, target: "SBTarget") -> "void": |
| r"""SetSelectedTarget(SBDebugger self, SBTarget target)""" |
| return _lldb.SBDebugger_SetSelectedTarget(self, target) |
| |
| def GetSelectedPlatform(self) -> "lldb::SBPlatform": |
| r"""GetSelectedPlatform(SBDebugger self) -> SBPlatform""" |
| return _lldb.SBDebugger_GetSelectedPlatform(self) |
| |
| def SetSelectedPlatform(self, platform: "SBPlatform") -> "void": |
| r"""SetSelectedPlatform(SBDebugger self, SBPlatform platform)""" |
| return _lldb.SBDebugger_SetSelectedPlatform(self, platform) |
| |
| def GetNumPlatforms(self) -> "uint32_t": |
| r""" |
| GetNumPlatforms(SBDebugger self) -> uint32_t |
| Get the number of currently active platforms. |
| """ |
| return _lldb.SBDebugger_GetNumPlatforms(self) |
| |
| def GetPlatformAtIndex(self, idx: "uint32_t") -> "lldb::SBPlatform": |
| r""" |
| GetPlatformAtIndex(SBDebugger self, uint32_t idx) -> SBPlatform |
| Get one of the currently active platforms. |
| """ |
| return _lldb.SBDebugger_GetPlatformAtIndex(self, idx) |
| |
| def GetNumAvailablePlatforms(self) -> "uint32_t": |
| r""" |
| GetNumAvailablePlatforms(SBDebugger self) -> uint32_t |
| Get the number of available platforms. |
| """ |
| return _lldb.SBDebugger_GetNumAvailablePlatforms(self) |
| |
| def GetAvailablePlatformInfoAtIndex(self, idx: "uint32_t") -> "lldb::SBStructuredData": |
| r""" |
| GetAvailablePlatformInfoAtIndex(SBDebugger self, uint32_t idx) -> SBStructuredData |
| |
| Get the name and description of one of the available platforms. |
| |
| @param idx Zero-based index of the platform for which info should be |
| retrieved, must be less than the value returned by |
| GetNumAvailablePlatforms(). |
| """ |
| return _lldb.SBDebugger_GetAvailablePlatformInfoAtIndex(self, idx) |
| |
| def GetSourceManager(self) -> "lldb::SBSourceManager": |
| r"""GetSourceManager(SBDebugger self) -> SBSourceManager""" |
| return _lldb.SBDebugger_GetSourceManager(self) |
| |
| def SetCurrentPlatform(self, platform_name: "char const *") -> "lldb::SBError": |
| r"""SetCurrentPlatform(SBDebugger self, char const * platform_name) -> SBError""" |
| return _lldb.SBDebugger_SetCurrentPlatform(self, platform_name) |
| |
| def SetCurrentPlatformSDKRoot(self, sysroot: "char const *") -> "bool": |
| r"""SetCurrentPlatformSDKRoot(SBDebugger self, char const * sysroot) -> bool""" |
| return _lldb.SBDebugger_SetCurrentPlatformSDKRoot(self, sysroot) |
| |
| def SetUseExternalEditor(self, input: "bool") -> "bool": |
| r"""SetUseExternalEditor(SBDebugger self, bool input) -> bool""" |
| return _lldb.SBDebugger_SetUseExternalEditor(self, input) |
| |
| def GetUseExternalEditor(self) -> "bool": |
| r"""GetUseExternalEditor(SBDebugger self) -> bool""" |
| return _lldb.SBDebugger_GetUseExternalEditor(self) |
| |
| def SetUseColor(self, use_color: "bool") -> "bool": |
| r"""SetUseColor(SBDebugger self, bool use_color) -> bool""" |
| return _lldb.SBDebugger_SetUseColor(self, use_color) |
| |
| def GetUseColor(self) -> "bool": |
| r"""GetUseColor(SBDebugger self) -> bool""" |
| return _lldb.SBDebugger_GetUseColor(self) |
| |
| @staticmethod |
| def GetDefaultArchitecture(arch_name: "char *", arch_name_len: "size_t") -> "bool": |
| r"""GetDefaultArchitecture(char * arch_name, size_t arch_name_len) -> bool""" |
| return _lldb.SBDebugger_GetDefaultArchitecture(arch_name, arch_name_len) |
| |
| @staticmethod |
| def SetDefaultArchitecture(arch_name: "char const *") -> "bool": |
| r"""SetDefaultArchitecture(char const * arch_name) -> bool""" |
| return _lldb.SBDebugger_SetDefaultArchitecture(arch_name) |
| |
| def GetScriptingLanguage(self, script_language_name: "char const *") -> "lldb::ScriptLanguage": |
| r"""GetScriptingLanguage(SBDebugger self, char const * script_language_name) -> lldb::ScriptLanguage""" |
| return _lldb.SBDebugger_GetScriptingLanguage(self, script_language_name) |
| |
| @staticmethod |
| def GetVersionString() -> "char const *": |
| r"""GetVersionString() -> char const *""" |
| return _lldb.SBDebugger_GetVersionString() |
| |
| @staticmethod |
| def StateAsCString(state: "lldb::StateType") -> "char const *": |
| r"""StateAsCString(lldb::StateType state) -> char const *""" |
| return _lldb.SBDebugger_StateAsCString(state) |
| |
| @staticmethod |
| def GetBuildConfiguration() -> "lldb::SBStructuredData": |
| r"""GetBuildConfiguration() -> SBStructuredData""" |
| return _lldb.SBDebugger_GetBuildConfiguration() |
| |
| @staticmethod |
| def StateIsRunningState(state: "lldb::StateType") -> "bool": |
| r"""StateIsRunningState(lldb::StateType state) -> bool""" |
| return _lldb.SBDebugger_StateIsRunningState(state) |
| |
| @staticmethod |
| def StateIsStoppedState(state: "lldb::StateType") -> "bool": |
| r"""StateIsStoppedState(lldb::StateType state) -> bool""" |
| return _lldb.SBDebugger_StateIsStoppedState(state) |
| |
| def EnableLog(self, channel: "char const *", types: "char const **") -> "bool": |
| r"""EnableLog(SBDebugger self, char const * channel, char const ** types) -> bool""" |
| return _lldb.SBDebugger_EnableLog(self, channel, types) |
| |
| def SetLoggingCallback(self, log_callback: "lldb::LogOutputCallback") -> "void": |
| r"""SetLoggingCallback(SBDebugger self, lldb::LogOutputCallback log_callback)""" |
| return _lldb.SBDebugger_SetLoggingCallback(self, log_callback) |
| |
| def DispatchInput(self, data: "void const *") -> "void": |
| r"""DispatchInput(SBDebugger self, void const * data)""" |
| return _lldb.SBDebugger_DispatchInput(self, data) |
| |
| def DispatchInputInterrupt(self) -> "void": |
| r"""DispatchInputInterrupt(SBDebugger self)""" |
| return _lldb.SBDebugger_DispatchInputInterrupt(self) |
| |
| def DispatchInputEndOfFile(self) -> "void": |
| r"""DispatchInputEndOfFile(SBDebugger self)""" |
| return _lldb.SBDebugger_DispatchInputEndOfFile(self) |
| |
| def GetInstanceName(self) -> "char const *": |
| r"""GetInstanceName(SBDebugger self) -> char const *""" |
| return _lldb.SBDebugger_GetInstanceName(self) |
| |
| @staticmethod |
| def FindDebuggerWithID(id: "int") -> "lldb::SBDebugger": |
| r"""FindDebuggerWithID(int id) -> SBDebugger""" |
| return _lldb.SBDebugger_FindDebuggerWithID(id) |
| |
| @staticmethod |
| def SetInternalVariable(var_name: "char const *", value: "char const *", debugger_instance_name: "char const *") -> "lldb::SBError": |
| r"""SetInternalVariable(char const * var_name, char const * value, char const * debugger_instance_name) -> SBError""" |
| return _lldb.SBDebugger_SetInternalVariable(var_name, value, debugger_instance_name) |
| |
| @staticmethod |
| def GetInternalVariableValue(var_name: "char const *", debugger_instance_name: "char const *") -> "lldb::SBStringList": |
| r"""GetInternalVariableValue(char const * var_name, char const * debugger_instance_name) -> SBStringList""" |
| return _lldb.SBDebugger_GetInternalVariableValue(var_name, debugger_instance_name) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBDebugger self, SBStream description) -> bool""" |
| return _lldb.SBDebugger_GetDescription(self, description) |
| |
| def GetTerminalWidth(self) -> "uint32_t": |
| r"""GetTerminalWidth(SBDebugger self) -> uint32_t""" |
| return _lldb.SBDebugger_GetTerminalWidth(self) |
| |
| def SetTerminalWidth(self, term_width: "uint32_t") -> "void": |
| r"""SetTerminalWidth(SBDebugger self, uint32_t term_width)""" |
| return _lldb.SBDebugger_SetTerminalWidth(self, term_width) |
| |
| def GetID(self) -> "lldb::user_id_t": |
| r"""GetID(SBDebugger self) -> lldb::user_id_t""" |
| return _lldb.SBDebugger_GetID(self) |
| |
| def GetPrompt(self) -> "char const *": |
| r"""GetPrompt(SBDebugger self) -> char const *""" |
| return _lldb.SBDebugger_GetPrompt(self) |
| |
| def SetPrompt(self, prompt: "char const *") -> "void": |
| r"""SetPrompt(SBDebugger self, char const * prompt)""" |
| return _lldb.SBDebugger_SetPrompt(self, prompt) |
| |
| def GetReproducerPath(self) -> "char const *": |
| r"""GetReproducerPath(SBDebugger self) -> char const *""" |
| return _lldb.SBDebugger_GetReproducerPath(self) |
| |
| def GetScriptLanguage(self) -> "lldb::ScriptLanguage": |
| r"""GetScriptLanguage(SBDebugger self) -> lldb::ScriptLanguage""" |
| return _lldb.SBDebugger_GetScriptLanguage(self) |
| |
| def SetScriptLanguage(self, script_lang: "lldb::ScriptLanguage") -> "void": |
| r"""SetScriptLanguage(SBDebugger self, lldb::ScriptLanguage script_lang)""" |
| return _lldb.SBDebugger_SetScriptLanguage(self, script_lang) |
| |
| def GetCloseInputOnEOF(self) -> "bool": |
| r"""GetCloseInputOnEOF(SBDebugger self) -> bool""" |
| return _lldb.SBDebugger_GetCloseInputOnEOF(self) |
| |
| def SetCloseInputOnEOF(self, b: "bool") -> "void": |
| r"""SetCloseInputOnEOF(SBDebugger self, bool b)""" |
| return _lldb.SBDebugger_SetCloseInputOnEOF(self, b) |
| |
| def GetCategory(self, *args) -> "lldb::SBTypeCategory": |
| r""" |
| GetCategory(SBDebugger self, char const * category_name) -> SBTypeCategory |
| GetCategory(SBDebugger self, lldb::LanguageType lang_type) -> SBTypeCategory |
| """ |
| return _lldb.SBDebugger_GetCategory(self, *args) |
| |
| def CreateCategory(self, category_name: "char const *") -> "lldb::SBTypeCategory": |
| r"""CreateCategory(SBDebugger self, char const * category_name) -> SBTypeCategory""" |
| return _lldb.SBDebugger_CreateCategory(self, category_name) |
| |
| def DeleteCategory(self, category_name: "char const *") -> "bool": |
| r"""DeleteCategory(SBDebugger self, char const * category_name) -> bool""" |
| return _lldb.SBDebugger_DeleteCategory(self, category_name) |
| |
| def GetNumCategories(self) -> "uint32_t": |
| r"""GetNumCategories(SBDebugger self) -> uint32_t""" |
| return _lldb.SBDebugger_GetNumCategories(self) |
| |
| def GetCategoryAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeCategory": |
| r"""GetCategoryAtIndex(SBDebugger self, uint32_t arg2) -> SBTypeCategory""" |
| return _lldb.SBDebugger_GetCategoryAtIndex(self, arg2) |
| |
| def GetDefaultCategory(self) -> "lldb::SBTypeCategory": |
| r"""GetDefaultCategory(SBDebugger self) -> SBTypeCategory""" |
| return _lldb.SBDebugger_GetDefaultCategory(self) |
| |
| def GetFormatForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeFormat": |
| r"""GetFormatForType(SBDebugger self, SBTypeNameSpecifier arg2) -> SBTypeFormat""" |
| return _lldb.SBDebugger_GetFormatForType(self, arg2) |
| |
| def GetSummaryForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeSummary": |
| r"""GetSummaryForType(SBDebugger self, SBTypeNameSpecifier arg2) -> SBTypeSummary""" |
| return _lldb.SBDebugger_GetSummaryForType(self, arg2) |
| |
| def GetFilterForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeFilter": |
| r"""GetFilterForType(SBDebugger self, SBTypeNameSpecifier arg2) -> SBTypeFilter""" |
| return _lldb.SBDebugger_GetFilterForType(self, arg2) |
| |
| def GetSyntheticForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeSynthetic": |
| r"""GetSyntheticForType(SBDebugger self, SBTypeNameSpecifier arg2) -> SBTypeSynthetic""" |
| return _lldb.SBDebugger_GetSyntheticForType(self, arg2) |
| |
| def GetScriptInterpreterInfo(self, arg2: "lldb::ScriptLanguage") -> "lldb::SBStructuredData": |
| r"""GetScriptInterpreterInfo(SBDebugger self, lldb::ScriptLanguage arg2) -> SBStructuredData""" |
| return _lldb.SBDebugger_GetScriptInterpreterInfo(self, arg2) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBDebugger self) -> std::string""" |
| return _lldb.SBDebugger___str__(self) |
| |
| def RunCommandInterpreter(self, auto_handle_events: "bool", spawn_thread: "bool", options: "SBCommandInterpreterRunOptions", num_errors: "int &", quit_requested: "bool &", stopped_for_crash: "bool &") -> "void": |
| r""" |
| RunCommandInterpreter(SBDebugger self, bool auto_handle_events, bool spawn_thread, SBCommandInterpreterRunOptions options, int & num_errors, bool & quit_requested, bool & stopped_for_crash) |
| Launch a command interpreter session. Commands are read from standard input or |
| from the input handle specified for the debugger object. Output/errors are |
| similarly redirected to standard output/error or the configured handles. |
| |
| @param[in] auto_handle_events If true, automatically handle resulting events. |
| @param[in] spawn_thread If true, start a new thread for IO handling. |
| @param[in] options Parameter collection of type SBCommandInterpreterRunOptions. |
| @param[in] num_errors Initial error counter. |
| @param[in] quit_requested Initial quit request flag. |
| @param[in] stopped_for_crash Initial crash flag. |
| |
| @return |
| A tuple with the number of errors encountered by the interpreter, a boolean |
| indicating whether quitting the interpreter was requested and another boolean |
| set to True in case of a crash. |
| |
| Example: :: |
| |
| # Start an interactive lldb session from a script (with a valid debugger object |
| # created beforehand): |
| n_errors, quit_requested, has_crashed = debugger.RunCommandInterpreter(True, |
| False, lldb.SBCommandInterpreterRunOptions(), 0, False, False) |
| """ |
| return _lldb.SBDebugger_RunCommandInterpreter(self, auto_handle_events, spawn_thread, options, num_errors, quit_requested, stopped_for_crash) |
| |
| def RunREPL(self, language: "lldb::LanguageType", repl_options: "char const *") -> "lldb::SBError": |
| r"""RunREPL(SBDebugger self, lldb::LanguageType language, char const * repl_options) -> SBError""" |
| return _lldb.SBDebugger_RunREPL(self, language, repl_options) |
| |
| def __iter__(self): |
| '''Iterate over all targets in a lldb.SBDebugger object.''' |
| return lldb_iter(self, 'GetNumTargets', 'GetTargetAtIndex') |
| |
| def __len__(self): |
| '''Return the number of targets in a lldb.SBDebugger object.''' |
| return self.GetNumTargets() |
| |
| |
| # Register SBDebugger in _lldb: |
| _lldb.SBDebugger_swigregister(SBDebugger) |
| |
| def SBDebugger_Initialize() -> "void": |
| r"""SBDebugger_Initialize()""" |
| return _lldb.SBDebugger_Initialize() |
| |
| def SBDebugger_InitializeWithErrorHandling() -> "lldb::SBError": |
| r"""SBDebugger_InitializeWithErrorHandling() -> SBError""" |
| return _lldb.SBDebugger_InitializeWithErrorHandling() |
| |
| def SBDebugger_Terminate() -> "void": |
| r"""SBDebugger_Terminate()""" |
| return _lldb.SBDebugger_Terminate() |
| |
| def SBDebugger_Create(*args) -> "lldb::SBDebugger": |
| r""" |
| SBDebugger_Create() -> SBDebugger |
| SBDebugger_Create(bool source_init_files) -> SBDebugger |
| SBDebugger_Create(bool source_init_files, lldb::LogOutputCallback log_callback) -> SBDebugger |
| """ |
| return _lldb.SBDebugger_Create(*args) |
| |
| def SBDebugger_Destroy(debugger: "SBDebugger") -> "void": |
| r"""SBDebugger_Destroy(SBDebugger debugger)""" |
| return _lldb.SBDebugger_Destroy(debugger) |
| |
| def SBDebugger_MemoryPressureDetected() -> "void": |
| r"""SBDebugger_MemoryPressureDetected()""" |
| return _lldb.SBDebugger_MemoryPressureDetected() |
| |
| def SBDebugger_GetDefaultArchitecture(arch_name: "char *", arch_name_len: "size_t") -> "bool": |
| r"""SBDebugger_GetDefaultArchitecture(char * arch_name, size_t arch_name_len) -> bool""" |
| return _lldb.SBDebugger_GetDefaultArchitecture(arch_name, arch_name_len) |
| |
| def SBDebugger_SetDefaultArchitecture(arch_name: "char const *") -> "bool": |
| r"""SBDebugger_SetDefaultArchitecture(char const * arch_name) -> bool""" |
| return _lldb.SBDebugger_SetDefaultArchitecture(arch_name) |
| |
| def SBDebugger_GetVersionString() -> "char const *": |
| r"""SBDebugger_GetVersionString() -> char const *""" |
| return _lldb.SBDebugger_GetVersionString() |
| |
| def SBDebugger_StateAsCString(state: "lldb::StateType") -> "char const *": |
| r"""SBDebugger_StateAsCString(lldb::StateType state) -> char const *""" |
| return _lldb.SBDebugger_StateAsCString(state) |
| |
| def SBDebugger_GetBuildConfiguration() -> "lldb::SBStructuredData": |
| r"""SBDebugger_GetBuildConfiguration() -> SBStructuredData""" |
| return _lldb.SBDebugger_GetBuildConfiguration() |
| |
| def SBDebugger_StateIsRunningState(state: "lldb::StateType") -> "bool": |
| r"""SBDebugger_StateIsRunningState(lldb::StateType state) -> bool""" |
| return _lldb.SBDebugger_StateIsRunningState(state) |
| |
| def SBDebugger_StateIsStoppedState(state: "lldb::StateType") -> "bool": |
| r"""SBDebugger_StateIsStoppedState(lldb::StateType state) -> bool""" |
| return _lldb.SBDebugger_StateIsStoppedState(state) |
| |
| def SBDebugger_FindDebuggerWithID(id: "int") -> "lldb::SBDebugger": |
| r"""SBDebugger_FindDebuggerWithID(int id) -> SBDebugger""" |
| return _lldb.SBDebugger_FindDebuggerWithID(id) |
| |
| def SBDebugger_SetInternalVariable(var_name: "char const *", value: "char const *", debugger_instance_name: "char const *") -> "lldb::SBError": |
| r"""SBDebugger_SetInternalVariable(char const * var_name, char const * value, char const * debugger_instance_name) -> SBError""" |
| return _lldb.SBDebugger_SetInternalVariable(var_name, value, debugger_instance_name) |
| |
| def SBDebugger_GetInternalVariableValue(var_name: "char const *", debugger_instance_name: "char const *") -> "lldb::SBStringList": |
| r"""SBDebugger_GetInternalVariableValue(char const * var_name, char const * debugger_instance_name) -> SBStringList""" |
| return _lldb.SBDebugger_GetInternalVariableValue(var_name, debugger_instance_name) |
| |
| class SBDeclaration(object): |
| r"""Specifies an association with a line and column for a variable.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBDeclaration self) -> SBDeclaration |
| __init__(SBDeclaration self, SBDeclaration rhs) -> SBDeclaration |
| """ |
| _lldb.SBDeclaration_swiginit(self, _lldb.new_SBDeclaration(*args)) |
| __swig_destroy__ = _lldb.delete_SBDeclaration |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBDeclaration self) -> bool""" |
| return _lldb.SBDeclaration_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBDeclaration___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetFileSpec(SBDeclaration self) -> SBFileSpec""" |
| return _lldb.SBDeclaration_GetFileSpec(self) |
| |
| def GetLine(self) -> "uint32_t": |
| r"""GetLine(SBDeclaration self) -> uint32_t""" |
| return _lldb.SBDeclaration_GetLine(self) |
| |
| def GetColumn(self) -> "uint32_t": |
| r"""GetColumn(SBDeclaration self) -> uint32_t""" |
| return _lldb.SBDeclaration_GetColumn(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBDeclaration self, SBStream description) -> bool""" |
| return _lldb.SBDeclaration_GetDescription(self, description) |
| |
| def SetFileSpec(self, filespec: "SBFileSpec") -> "void": |
| r"""SetFileSpec(SBDeclaration self, SBFileSpec filespec)""" |
| return _lldb.SBDeclaration_SetFileSpec(self, filespec) |
| |
| def SetLine(self, line: "uint32_t") -> "void": |
| r"""SetLine(SBDeclaration self, uint32_t line)""" |
| return _lldb.SBDeclaration_SetLine(self, line) |
| |
| def SetColumn(self, column: "uint32_t") -> "void": |
| r"""SetColumn(SBDeclaration self, uint32_t column)""" |
| return _lldb.SBDeclaration_SetColumn(self, column) |
| |
| def __eq__(self, rhs: "SBDeclaration") -> "bool": |
| r"""__eq__(SBDeclaration self, SBDeclaration rhs) -> bool""" |
| return _lldb.SBDeclaration___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBDeclaration") -> "bool": |
| r"""__ne__(SBDeclaration self, SBDeclaration rhs) -> bool""" |
| return _lldb.SBDeclaration___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBDeclaration self) -> std::string""" |
| return _lldb.SBDeclaration___str__(self) |
| |
| file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''') |
| line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''') |
| column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBDeclaration in _lldb: |
| _lldb.SBDeclaration_swigregister(SBDeclaration) |
| |
| class SBError(object): |
| r""" |
| Represents a container for holding any error code. |
| |
| For example (from test/python_api/hello_world/TestHelloWorld.py), :: |
| |
| def hello_world_attach_with_id_api(self): |
| '''Create target, spawn a process, and attach to it by id.''' |
| |
| target = self.dbg.CreateTarget(self.exe) |
| |
| # Spawn a new process and don't display the stdout if not in TraceOn() mode. |
| import subprocess |
| popen = subprocess.Popen([self.exe, 'abc', 'xyz'], |
| stdout = open(os.devnull, 'w') if not self.TraceOn() else None) |
| |
| listener = lldb.SBListener('my.attach.listener') |
| error = lldb.SBError() |
| process = target.AttachToProcessWithID(listener, popen.pid, error) |
| |
| self.assertTrue(error.Success() and process, PROCESS_IS_VALID) |
| |
| # Let's check the stack traces of the attached process. |
| import lldbutil |
| stacktraces = lldbutil.print_stacktraces(process, string_buffer=True) |
| self.expect(stacktraces, exe=False, |
| substrs = ['main.c:%d' % self.line2, |
| '(int)argc=3']) |
| |
| listener = lldb.SBListener('my.attach.listener') |
| error = lldb.SBError() |
| process = target.AttachToProcessWithID(listener, popen.pid, error) |
| |
| self.assertTrue(error.Success() and process, PROCESS_IS_VALID) |
| |
| checks that after the attach, there is no error condition by asserting |
| that error.Success() is True and we get back a valid process object. |
| |
| And (from test/python_api/event/TestEvent.py), :: |
| |
| # Now launch the process, and do not stop at entry point. |
| error = lldb.SBError() |
| process = target.Launch(listener, None, None, None, None, None, None, 0, False, error) |
| self.assertTrue(error.Success() and process, PROCESS_IS_VALID) |
| |
| checks that after calling the target.Launch() method there's no error |
| condition and we get back a void process object. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBError self) -> SBError |
| __init__(SBError self, SBError rhs) -> SBError |
| """ |
| _lldb.SBError_swiginit(self, _lldb.new_SBError(*args)) |
| __swig_destroy__ = _lldb.delete_SBError |
| |
| def GetCString(self) -> "char const *": |
| r"""GetCString(SBError self) -> char const *""" |
| return _lldb.SBError_GetCString(self) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBError self)""" |
| return _lldb.SBError_Clear(self) |
| |
| def Fail(self) -> "bool": |
| r"""Fail(SBError self) -> bool""" |
| return _lldb.SBError_Fail(self) |
| |
| def Success(self) -> "bool": |
| r"""Success(SBError self) -> bool""" |
| return _lldb.SBError_Success(self) |
| |
| def GetError(self) -> "uint32_t": |
| r"""GetError(SBError self) -> uint32_t""" |
| return _lldb.SBError_GetError(self) |
| |
| def GetType(self) -> "lldb::ErrorType": |
| r"""GetType(SBError self) -> lldb::ErrorType""" |
| return _lldb.SBError_GetType(self) |
| |
| def SetError(self, err: "uint32_t", type: "lldb::ErrorType") -> "void": |
| r"""SetError(SBError self, uint32_t err, lldb::ErrorType type)""" |
| return _lldb.SBError_SetError(self, err, type) |
| |
| def SetErrorToErrno(self) -> "void": |
| r"""SetErrorToErrno(SBError self)""" |
| return _lldb.SBError_SetErrorToErrno(self) |
| |
| def SetErrorToGenericError(self) -> "void": |
| r"""SetErrorToGenericError(SBError self)""" |
| return _lldb.SBError_SetErrorToGenericError(self) |
| |
| def SetErrorString(self, err_str: "char const *") -> "void": |
| r"""SetErrorString(SBError self, char const * err_str)""" |
| return _lldb.SBError_SetErrorString(self, err_str) |
| |
| def SetErrorStringWithFormat(self, format: "char const *", str1: "char *"=None, str2: "char *"=None, str3: "char *"=None) -> "int": |
| r"""SetErrorStringWithFormat(SBError self, char const * format, char * str1=None, char * str2=None, char * str3=None) -> int""" |
| return _lldb.SBError_SetErrorStringWithFormat(self, format, str1, str2, str3) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBError self) -> bool""" |
| return _lldb.SBError_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBError___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBError self, SBStream description) -> bool""" |
| return _lldb.SBError_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBError self) -> std::string""" |
| return _lldb.SBError___str__(self) |
| |
| value = property(GetError, None, doc='''A read only property that returns the same result as GetError().''') |
| fail = property(Fail, None, doc='''A read only property that returns the same result as Fail().''') |
| success = property(Success, None, doc='''A read only property that returns the same result as Success().''') |
| description = property(GetCString, None, doc='''A read only property that returns the same result as GetCString().''') |
| type = property(GetType, None, doc='''A read only property that returns the same result as GetType().''') |
| |
| |
| # Register SBError in _lldb: |
| _lldb.SBError_swigregister(SBError) |
| |
| class SBEnvironment(object): |
| r""" |
| Represents the environment of a certain process. |
| |
| Example: :: |
| |
| for entry in lldb.debugger.GetSelectedTarget().GetEnvironment().GetEntries(): |
| print(entry) |
| |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBEnvironment self) -> SBEnvironment |
| __init__(SBEnvironment self, SBEnvironment rhs) -> SBEnvironment |
| """ |
| _lldb.SBEnvironment_swiginit(self, _lldb.new_SBEnvironment(*args)) |
| __swig_destroy__ = _lldb.delete_SBEnvironment |
| |
| def GetNumValues(self) -> "size_t": |
| r"""GetNumValues(SBEnvironment self) -> size_t""" |
| return _lldb.SBEnvironment_GetNumValues(self) |
| |
| def Get(self, name: "char const *") -> "char const *": |
| r"""Get(SBEnvironment self, char const * name) -> char const *""" |
| return _lldb.SBEnvironment_Get(self, name) |
| |
| def GetNameAtIndex(self, index: "size_t") -> "char const *": |
| r"""GetNameAtIndex(SBEnvironment self, size_t index) -> char const *""" |
| return _lldb.SBEnvironment_GetNameAtIndex(self, index) |
| |
| def GetValueAtIndex(self, index: "size_t") -> "char const *": |
| r"""GetValueAtIndex(SBEnvironment self, size_t index) -> char const *""" |
| return _lldb.SBEnvironment_GetValueAtIndex(self, index) |
| |
| def GetEntries(self) -> "lldb::SBStringList": |
| r"""GetEntries(SBEnvironment self) -> SBStringList""" |
| return _lldb.SBEnvironment_GetEntries(self) |
| |
| def PutEntry(self, name_and_value: "char const *") -> "void": |
| r"""PutEntry(SBEnvironment self, char const * name_and_value)""" |
| return _lldb.SBEnvironment_PutEntry(self, name_and_value) |
| |
| def SetEntries(self, entries: "SBStringList", append: "bool") -> "void": |
| r"""SetEntries(SBEnvironment self, SBStringList entries, bool append)""" |
| return _lldb.SBEnvironment_SetEntries(self, entries, append) |
| |
| def Set(self, name: "char const *", value: "char const *", overwrite: "bool") -> "bool": |
| r"""Set(SBEnvironment self, char const * name, char const * value, bool overwrite) -> bool""" |
| return _lldb.SBEnvironment_Set(self, name, value, overwrite) |
| |
| def Unset(self, name: "char const *") -> "bool": |
| r"""Unset(SBEnvironment self, char const * name) -> bool""" |
| return _lldb.SBEnvironment_Unset(self, name) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBEnvironment self)""" |
| return _lldb.SBEnvironment_Clear(self) |
| |
| # Register SBEnvironment in _lldb: |
| _lldb.SBEnvironment_swigregister(SBEnvironment) |
| |
| class SBEvent(object): |
| r""" |
| API clients can register to receive events. |
| |
| For example, check out the following output: :: |
| |
| Try wait for event... |
| Event description: 0x103d0bb70 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = running} |
| Event data flavor: Process::ProcessEventData |
| Process state: running |
| |
| Try wait for event... |
| Event description: 0x103a700a0 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = stopped} |
| Event data flavor: Process::ProcessEventData |
| Process state: stopped |
| |
| Try wait for event... |
| Event description: 0x103d0d4a0 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = exited} |
| Event data flavor: Process::ProcessEventData |
| Process state: exited |
| |
| Try wait for event... |
| timeout occurred waiting for event... |
| |
| from test/python_api/event/TestEventspy: :: |
| |
| def do_listen_for_and_print_event(self): |
| '''Create a listener and use SBEvent API to print the events received.''' |
| exe = os.path.join(os.getcwd(), 'a.out') |
| |
| # Create a target by the debugger. |
| target = self.dbg.CreateTarget(exe) |
| self.assertTrue(target, VALID_TARGET) |
| |
| # Now create a breakpoint on main.c by name 'c'. |
| breakpoint = target.BreakpointCreateByName('c', 'a.out') |
| |
| # Now launch the process, and do not stop at the entry point. |
| process = target.LaunchSimple(None, None, os.getcwd()) |
| self.assertTrue(process.GetState() == lldb.eStateStopped, |
| PROCESS_STOPPED) |
| |
| # Get a handle on the process's broadcaster. |
| broadcaster = process.GetBroadcaster() |
| |
| # Create an empty event object. |
| event = lldb.SBEvent() |
| |
| # Create a listener object and register with the broadcaster. |
| listener = lldb.SBListener('my listener') |
| rc = broadcaster.AddListener(listener, lldb.SBProcess.eBroadcastBitStateChanged) |
| self.assertTrue(rc, 'AddListener successfully retruns') |
| |
| traceOn = self.TraceOn() |
| if traceOn: |
| lldbutil.print_stacktraces(process) |
| |
| # Create MyListeningThread class to wait for any kind of event. |
| import threading |
| class MyListeningThread(threading.Thread): |
| def run(self): |
| count = 0 |
| # Let's only try at most 4 times to retrieve any kind of event. |
| # After that, the thread exits. |
| while not count > 3: |
| if traceOn: |
| print('Try wait for event...') |
| if listener.WaitForEventForBroadcasterWithType(5, |
| broadcaster, |
| lldb.SBProcess.eBroadcastBitStateChanged, |
| event): |
| if traceOn: |
| desc = lldbutil.get_description(event)) |
| print('Event description:', desc) |
| print('Event data flavor:', event.GetDataFlavor()) |
| print('Process state:', lldbutil.state_type_to_str(process.GetState())) |
| print() |
| else: |
| if traceOn: |
| print 'timeout occurred waiting for event...' |
| count = count + 1 |
| return |
| |
| # Let's start the listening thread to retrieve the events. |
| my_thread = MyListeningThread() |
| my_thread.start() |
| |
| # Use Python API to continue the process. The listening thread should be |
| # able to receive the state changed events. |
| process.Continue() |
| |
| # Use Python API to kill the process. The listening thread should be |
| # able to receive the state changed event, too. |
| process.Kill() |
| |
| # Wait until the 'MyListeningThread' terminates. |
| my_thread.join() |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBEvent self) -> SBEvent |
| __init__(SBEvent self, SBEvent rhs) -> SBEvent__init__(self, int type, str data) -> SBEvent (make an event that contains a C string) |
| """ |
| _lldb.SBEvent_swiginit(self, _lldb.new_SBEvent(*args)) |
| __swig_destroy__ = _lldb.delete_SBEvent |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBEvent self) -> bool""" |
| return _lldb.SBEvent_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBEvent___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetDataFlavor(self) -> "char const *": |
| r"""GetDataFlavor(SBEvent self) -> char const *""" |
| return _lldb.SBEvent_GetDataFlavor(self) |
| |
| def GetType(self) -> "uint32_t": |
| r"""GetType(SBEvent self) -> uint32_t""" |
| return _lldb.SBEvent_GetType(self) |
| |
| def GetBroadcaster(self) -> "lldb::SBBroadcaster": |
| r"""GetBroadcaster(SBEvent self) -> SBBroadcaster""" |
| return _lldb.SBEvent_GetBroadcaster(self) |
| |
| def GetBroadcasterClass(self) -> "char const *": |
| r"""GetBroadcasterClass(SBEvent self) -> char const *""" |
| return _lldb.SBEvent_GetBroadcasterClass(self) |
| |
| def BroadcasterMatchesRef(self, broadcaster: "SBBroadcaster") -> "bool": |
| r"""BroadcasterMatchesRef(SBEvent self, SBBroadcaster broadcaster) -> bool""" |
| return _lldb.SBEvent_BroadcasterMatchesRef(self, broadcaster) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBEvent self)""" |
| return _lldb.SBEvent_Clear(self) |
| |
| @staticmethod |
| def GetCStringFromEvent(event: "SBEvent") -> "char const *": |
| r"""GetCStringFromEvent(SBEvent event) -> char const *""" |
| return _lldb.SBEvent_GetCStringFromEvent(event) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBEvent self, SBStream description) -> bool""" |
| return _lldb.SBEvent_GetDescription(self, description) |
| |
| # Register SBEvent in _lldb: |
| _lldb.SBEvent_swigregister(SBEvent) |
| |
| def SBEvent_GetCStringFromEvent(event: "SBEvent") -> "char const *": |
| r"""SBEvent_GetCStringFromEvent(SBEvent event) -> char const *""" |
| return _lldb.SBEvent_GetCStringFromEvent(event) |
| |
| class SBExecutionContext(object): |
| r"""Describes the program context in which a command should be executed.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBExecutionContext self) -> SBExecutionContext |
| __init__(SBExecutionContext self, SBExecutionContext rhs) -> SBExecutionContext |
| __init__(SBExecutionContext self, SBTarget target) -> SBExecutionContext |
| __init__(SBExecutionContext self, SBProcess process) -> SBExecutionContext |
| __init__(SBExecutionContext self, SBThread thread) -> SBExecutionContext |
| __init__(SBExecutionContext self, SBFrame frame) -> SBExecutionContext |
| """ |
| _lldb.SBExecutionContext_swiginit(self, _lldb.new_SBExecutionContext(*args)) |
| __swig_destroy__ = _lldb.delete_SBExecutionContext |
| |
| def GetTarget(self) -> "lldb::SBTarget": |
| r"""GetTarget(SBExecutionContext self) -> SBTarget""" |
| return _lldb.SBExecutionContext_GetTarget(self) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBExecutionContext self) -> SBProcess""" |
| return _lldb.SBExecutionContext_GetProcess(self) |
| |
| def GetThread(self) -> "lldb::SBThread": |
| r"""GetThread(SBExecutionContext self) -> SBThread""" |
| return _lldb.SBExecutionContext_GetThread(self) |
| |
| def GetFrame(self) -> "lldb::SBFrame": |
| r"""GetFrame(SBExecutionContext self) -> SBFrame""" |
| return _lldb.SBExecutionContext_GetFrame(self) |
| |
| target = property(GetTarget, None, doc='''A read only property that returns the same result as GetTarget().''') |
| process = property(GetProcess, None, doc='''A read only property that returns the same result as GetProcess().''') |
| thread = property(GetThread, None, doc='''A read only property that returns the same result as GetThread().''') |
| frame = property(GetFrame, None, doc='''A read only property that returns the same result as GetFrame().''') |
| |
| |
| # Register SBExecutionContext in _lldb: |
| _lldb.SBExecutionContext_swigregister(SBExecutionContext) |
| |
| class SBExpressionOptions(object): |
| r"""A container for options to use when evaluating expressions.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBExpressionOptions self) -> SBExpressionOptions |
| __init__(SBExpressionOptions self, SBExpressionOptions rhs) -> SBExpressionOptions |
| """ |
| _lldb.SBExpressionOptions_swiginit(self, _lldb.new_SBExpressionOptions(*args)) |
| __swig_destroy__ = _lldb.delete_SBExpressionOptions |
| |
| def GetCoerceResultToId(self) -> "bool": |
| r"""GetCoerceResultToId(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetCoerceResultToId(self) |
| |
| def SetCoerceResultToId(self, coerce: "bool"=True) -> "void": |
| r""" |
| SetCoerceResultToId(SBExpressionOptions self, bool coerce=True) |
| Sets whether to coerce the expression result to ObjC id type after evaluation. |
| """ |
| return _lldb.SBExpressionOptions_SetCoerceResultToId(self, coerce) |
| |
| def GetUnwindOnError(self) -> "bool": |
| r"""GetUnwindOnError(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetUnwindOnError(self) |
| |
| def SetUnwindOnError(self, unwind: "bool"=True) -> "void": |
| r""" |
| SetUnwindOnError(SBExpressionOptions self, bool unwind=True) |
| Sets whether to unwind the expression stack on error. |
| """ |
| return _lldb.SBExpressionOptions_SetUnwindOnError(self, unwind) |
| |
| def GetIgnoreBreakpoints(self) -> "bool": |
| r"""GetIgnoreBreakpoints(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetIgnoreBreakpoints(self) |
| |
| def SetIgnoreBreakpoints(self, ignore: "bool"=True) -> "void": |
| r"""SetIgnoreBreakpoints(SBExpressionOptions self, bool ignore=True)""" |
| return _lldb.SBExpressionOptions_SetIgnoreBreakpoints(self, ignore) |
| |
| def GetFetchDynamicValue(self) -> "lldb::DynamicValueType": |
| r"""GetFetchDynamicValue(SBExpressionOptions self) -> lldb::DynamicValueType""" |
| return _lldb.SBExpressionOptions_GetFetchDynamicValue(self) |
| |
| def SetFetchDynamicValue(self, *args) -> "void": |
| r""" |
| SetFetchDynamicValue(SBExpressionOptions self, lldb::DynamicValueType dynamic=eDynamicCanRunTarget) |
| Sets whether to cast the expression result to its dynamic type. |
| """ |
| return _lldb.SBExpressionOptions_SetFetchDynamicValue(self, *args) |
| |
| def GetTimeoutInMicroSeconds(self) -> "uint32_t": |
| r"""GetTimeoutInMicroSeconds(SBExpressionOptions self) -> uint32_t""" |
| return _lldb.SBExpressionOptions_GetTimeoutInMicroSeconds(self) |
| |
| def SetTimeoutInMicroSeconds(self, timeout: "uint32_t"=0) -> "void": |
| r""" |
| SetTimeoutInMicroSeconds(SBExpressionOptions self, uint32_t timeout=0) |
| Sets the timeout in microseconds to run the expression for. If try all threads is set to true and the expression doesn't complete within the specified timeout, all threads will be resumed for the same timeout to see if the expression will finish. |
| """ |
| return _lldb.SBExpressionOptions_SetTimeoutInMicroSeconds(self, timeout) |
| |
| def GetOneThreadTimeoutInMicroSeconds(self) -> "uint32_t": |
| r"""GetOneThreadTimeoutInMicroSeconds(SBExpressionOptions self) -> uint32_t""" |
| return _lldb.SBExpressionOptions_GetOneThreadTimeoutInMicroSeconds(self) |
| |
| def SetOneThreadTimeoutInMicroSeconds(self, timeout: "uint32_t"=0) -> "void": |
| r"""SetOneThreadTimeoutInMicroSeconds(SBExpressionOptions self, uint32_t timeout=0)""" |
| return _lldb.SBExpressionOptions_SetOneThreadTimeoutInMicroSeconds(self, timeout) |
| |
| def GetTryAllThreads(self) -> "bool": |
| r"""GetTryAllThreads(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetTryAllThreads(self) |
| |
| def SetTryAllThreads(self, run_others: "bool"=True) -> "void": |
| r""" |
| SetTryAllThreads(SBExpressionOptions self, bool run_others=True) |
| Sets whether to run all threads if the expression does not complete on one thread. |
| """ |
| return _lldb.SBExpressionOptions_SetTryAllThreads(self, run_others) |
| |
| def GetStopOthers(self) -> "bool": |
| r"""GetStopOthers(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetStopOthers(self) |
| |
| def SetStopOthers(self, stop_others: "bool"=True) -> "void": |
| r"""SetStopOthers(SBExpressionOptions self, bool stop_others=True)""" |
| return _lldb.SBExpressionOptions_SetStopOthers(self, stop_others) |
| |
| def GetTrapExceptions(self) -> "bool": |
| r"""GetTrapExceptions(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetTrapExceptions(self) |
| |
| def SetTrapExceptions(self, trap_exceptions: "bool"=True) -> "void": |
| r"""SetTrapExceptions(SBExpressionOptions self, bool trap_exceptions=True)""" |
| return _lldb.SBExpressionOptions_SetTrapExceptions(self, trap_exceptions) |
| |
| def SetLanguage(self, language: "lldb::LanguageType") -> "void": |
| r""" |
| SetLanguage(SBExpressionOptions self, lldb::LanguageType language) |
| Sets the language that LLDB should assume the expression is written in |
| """ |
| return _lldb.SBExpressionOptions_SetLanguage(self, language) |
| |
| def GetGenerateDebugInfo(self) -> "bool": |
| r"""GetGenerateDebugInfo(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetGenerateDebugInfo(self) |
| |
| def SetGenerateDebugInfo(self, b: "bool"=True) -> "void": |
| r""" |
| SetGenerateDebugInfo(SBExpressionOptions self, bool b=True) |
| Sets whether to generate debug information for the expression and also controls if a SBModule is generated. |
| """ |
| return _lldb.SBExpressionOptions_SetGenerateDebugInfo(self, b) |
| |
| def GetSuppressPersistentResult(self) -> "bool": |
| r"""GetSuppressPersistentResult(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetSuppressPersistentResult(self) |
| |
| def SetSuppressPersistentResult(self, b: "bool"=False) -> "void": |
| r""" |
| SetSuppressPersistentResult(SBExpressionOptions self, bool b=False) |
| Sets whether to produce a persistent result that can be used in future expressions. |
| """ |
| return _lldb.SBExpressionOptions_SetSuppressPersistentResult(self, b) |
| |
| def GetPrefix(self) -> "char const *": |
| r""" |
| GetPrefix(SBExpressionOptions self) -> char const * |
| Gets the prefix to use for this expression. |
| """ |
| return _lldb.SBExpressionOptions_GetPrefix(self) |
| |
| def SetPrefix(self, prefix: "char const *") -> "void": |
| r""" |
| SetPrefix(SBExpressionOptions self, char const * prefix) |
| Sets the prefix to use for this expression. This prefix gets inserted after the 'target.expr-prefix' prefix contents, but before the wrapped expression function body. |
| """ |
| return _lldb.SBExpressionOptions_SetPrefix(self, prefix) |
| |
| def SetAutoApplyFixIts(self, b: "bool"=True) -> "void": |
| r""" |
| SetAutoApplyFixIts(SBExpressionOptions self, bool b=True) |
| Sets whether to auto-apply fix-it hints to the expression being evaluated. |
| """ |
| return _lldb.SBExpressionOptions_SetAutoApplyFixIts(self, b) |
| |
| def GetAutoApplyFixIts(self) -> "bool": |
| r""" |
| GetAutoApplyFixIts(SBExpressionOptions self) -> bool |
| Gets whether to auto-apply fix-it hints to an expression. |
| """ |
| return _lldb.SBExpressionOptions_GetAutoApplyFixIts(self) |
| |
| def SetRetriesWithFixIts(self, retries: "uint64_t") -> "void": |
| r""" |
| SetRetriesWithFixIts(SBExpressionOptions self, uint64_t retries) |
| Sets how often LLDB should retry applying fix-its to an expression. |
| """ |
| return _lldb.SBExpressionOptions_SetRetriesWithFixIts(self, retries) |
| |
| def GetRetriesWithFixIts(self) -> "uint64_t": |
| r""" |
| GetRetriesWithFixIts(SBExpressionOptions self) -> uint64_t |
| Gets how often LLDB will retry applying fix-its to an expression. |
| """ |
| return _lldb.SBExpressionOptions_GetRetriesWithFixIts(self) |
| |
| def GetTopLevel(self) -> "bool": |
| r"""GetTopLevel(SBExpressionOptions self) -> bool""" |
| return _lldb.SBExpressionOptions_GetTopLevel(self) |
| |
| def SetTopLevel(self, b: "bool"=True) -> "void": |
| r"""SetTopLevel(SBExpressionOptions self, bool b=True)""" |
| return _lldb.SBExpressionOptions_SetTopLevel(self, b) |
| |
| def GetAllowJIT(self) -> "bool": |
| r""" |
| GetAllowJIT(SBExpressionOptions self) -> bool |
| Gets whether to JIT an expression if it cannot be interpreted. |
| """ |
| return _lldb.SBExpressionOptions_GetAllowJIT(self) |
| |
| def SetAllowJIT(self, allow: "bool") -> "void": |
| r""" |
| SetAllowJIT(SBExpressionOptions self, bool allow) |
| Sets whether to JIT an expression if it cannot be interpreted. |
| """ |
| return _lldb.SBExpressionOptions_SetAllowJIT(self, allow) |
| |
| # Register SBExpressionOptions in _lldb: |
| _lldb.SBExpressionOptions_swigregister(SBExpressionOptions) |
| |
| class SBFile(object): |
| r"""Represents a file.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBFile self) -> SBFile |
| __init__(SBFile self, int fd, char const * mode, bool transfer_ownership) -> SBFile |
| __init__(SBFile self, lldb::FileSP file) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| _lldb.SBFile_swiginit(self, _lldb.new_SBFile(*args)) |
| |
| @staticmethod |
| def MakeBorrowed(BORROWED: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| MakeBorrowed(lldb::FileSP BORROWED) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeBorrowed(BORROWED) |
| |
| @staticmethod |
| def MakeForcingIOMethods(FORCE_IO_METHODS: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| MakeForcingIOMethods(lldb::FileSP FORCE_IO_METHODS) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeForcingIOMethods(FORCE_IO_METHODS) |
| |
| @staticmethod |
| def MakeBorrowedForcingIOMethods(BORROWED_FORCE_IO_METHODS: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| MakeBorrowedForcingIOMethods(lldb::FileSP BORROWED_FORCE_IO_METHODS) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeBorrowedForcingIOMethods(BORROWED_FORCE_IO_METHODS) |
| |
| @classmethod |
| def Create(cls, file, borrow=False, force_io_methods=False): |
| """ |
| Create a SBFile from a python file object, with options. |
| |
| If borrow is set then the underlying file will |
| not be closed when the SBFile is closed or destroyed. |
| |
| If force_scripting_io is set then the python read/write |
| methods will be called even if a file descriptor is available. |
| """ |
| if borrow: |
| if force_io_methods: |
| return cls.MakeBorrowedForcingIOMethods(file) |
| else: |
| return cls.MakeBorrowed(file) |
| else: |
| if force_io_methods: |
| return cls.MakeForcingIOMethods(file) |
| else: |
| return cls(file) |
| |
| __swig_destroy__ = _lldb.delete_SBFile |
| |
| def Read(self, buf: "uint8_t *") -> "lldb::SBError": |
| r""" |
| Read(buffer) -> SBError, bytes_read |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_Read(self, buf) |
| |
| def Write(self, buf: "uint8_t const *") -> "lldb::SBError": |
| r""" |
| Write(buffer) -> SBError, written_read |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_Write(self, buf) |
| |
| def Flush(self) -> "void": |
| r""" |
| Flush(SBFile self) |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_Flush(self) |
| |
| def IsValid(self) -> "bool": |
| r""" |
| IsValid(SBFile self) -> bool |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBFile___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Close(self) -> "lldb::SBError": |
| r""" |
| Close(SBFile self) -> SBError |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_Close(self) |
| |
| def GetFile(self) -> "lldb::FileSP": |
| r""" |
| GetFile(SBFile self) -> lldb::FileSP |
| |
| Convert this SBFile into a python io.IOBase file object. |
| |
| If the SBFile is itself a wrapper around a python file object, |
| this will return that original object. |
| |
| The file returned from here should be considered borrowed, |
| in the sense that you may read and write to it, and flush it, |
| etc, but you should not close it. If you want to close the |
| SBFile, call SBFile.Close(). |
| |
| If there is no underlying python file to unwrap, GetFile will |
| use the file descriptor, if available to create a new python |
| file object using ``open(fd, mode=..., closefd=False)`` |
| |
| """ |
| return _lldb.SBFile_GetFile(self) |
| |
| # Register SBFile in _lldb: |
| _lldb.SBFile_swigregister(SBFile) |
| |
| def SBFile_MakeBorrowed(BORROWED: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| SBFile_MakeBorrowed(lldb::FileSP BORROWED) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeBorrowed(BORROWED) |
| |
| def SBFile_MakeForcingIOMethods(FORCE_IO_METHODS: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| SBFile_MakeForcingIOMethods(lldb::FileSP FORCE_IO_METHODS) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeForcingIOMethods(FORCE_IO_METHODS) |
| |
| def SBFile_MakeBorrowedForcingIOMethods(BORROWED_FORCE_IO_METHODS: "lldb::FileSP") -> "lldb::SBFile": |
| r""" |
| SBFile_MakeBorrowedForcingIOMethods(lldb::FileSP BORROWED_FORCE_IO_METHODS) -> SBFile |
| initialize a SBFile from a python file object |
| """ |
| return _lldb.SBFile_MakeBorrowedForcingIOMethods(BORROWED_FORCE_IO_METHODS) |
| |
| class SBFileSpec(object): |
| r""" |
| Represents a file specification that divides the path into a directory and |
| basename. The string values of the paths are put into uniqued string pools |
| for fast comparisons and efficient memory usage. |
| |
| For example, the following code :: |
| |
| lineEntry = context.GetLineEntry() |
| self.expect(lineEntry.GetFileSpec().GetDirectory(), 'The line entry should have the correct directory', |
| exe=False, |
| substrs = [self.mydir]) |
| self.expect(lineEntry.GetFileSpec().GetFilename(), 'The line entry should have the correct filename', |
| exe=False, |
| substrs = ['main.c']) |
| self.assertTrue(lineEntry.GetLine() == self.line, |
| 'The line entry's line number should match ') |
| |
| gets the line entry from the symbol context when a thread is stopped. |
| It gets the file spec corresponding to the line entry and checks that |
| the filename and the directory matches what we expect. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBFileSpec self) -> SBFileSpec |
| __init__(SBFileSpec self, SBFileSpec rhs) -> SBFileSpec |
| __init__(SBFileSpec self, char const * path) -> SBFileSpec |
| __init__(SBFileSpec self, char const * path, bool resolve) -> SBFileSpec |
| """ |
| _lldb.SBFileSpec_swiginit(self, _lldb.new_SBFileSpec(*args)) |
| __swig_destroy__ = _lldb.delete_SBFileSpec |
| |
| def __eq__(self, rhs: "SBFileSpec") -> "bool": |
| r"""__eq__(SBFileSpec self, SBFileSpec rhs) -> bool""" |
| return _lldb.SBFileSpec___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBFileSpec") -> "bool": |
| r"""__ne__(SBFileSpec self, SBFileSpec rhs) -> bool""" |
| return _lldb.SBFileSpec___ne__(self, rhs) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBFileSpec self) -> bool""" |
| return _lldb.SBFileSpec_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBFileSpec___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Exists(self) -> "bool": |
| r"""Exists(SBFileSpec self) -> bool""" |
| return _lldb.SBFileSpec_Exists(self) |
| |
| def ResolveExecutableLocation(self) -> "bool": |
| r"""ResolveExecutableLocation(SBFileSpec self) -> bool""" |
| return _lldb.SBFileSpec_ResolveExecutableLocation(self) |
| |
| def GetFilename(self) -> "char const *": |
| r"""GetFilename(SBFileSpec self) -> char const *""" |
| return _lldb.SBFileSpec_GetFilename(self) |
| |
| def GetDirectory(self) -> "char const *": |
| r"""GetDirectory(SBFileSpec self) -> char const *""" |
| return _lldb.SBFileSpec_GetDirectory(self) |
| |
| def SetFilename(self, filename: "char const *") -> "void": |
| r"""SetFilename(SBFileSpec self, char const * filename)""" |
| return _lldb.SBFileSpec_SetFilename(self, filename) |
| |
| def SetDirectory(self, directory: "char const *") -> "void": |
| r"""SetDirectory(SBFileSpec self, char const * directory)""" |
| return _lldb.SBFileSpec_SetDirectory(self, directory) |
| |
| def GetPath(self, dst_path: "char *", dst_len: "size_t") -> "uint32_t": |
| r"""GetPath(SBFileSpec self, char * dst_path, size_t dst_len) -> uint32_t""" |
| return _lldb.SBFileSpec_GetPath(self, dst_path, dst_len) |
| |
| @staticmethod |
| def ResolvePath(src_path: "char const *", dst_path: "char *", dst_len: "size_t") -> "int": |
| r"""ResolvePath(char const * src_path, char * dst_path, size_t dst_len) -> int""" |
| return _lldb.SBFileSpec_ResolvePath(src_path, dst_path, dst_len) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBFileSpec self, SBStream description) -> bool""" |
| return _lldb.SBFileSpec_GetDescription(self, description) |
| |
| def AppendPathComponent(self, file_or_directory: "char const *") -> "void": |
| r"""AppendPathComponent(SBFileSpec self, char const * file_or_directory)""" |
| return _lldb.SBFileSpec_AppendPathComponent(self, file_or_directory) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBFileSpec self) -> std::string""" |
| return _lldb.SBFileSpec___str__(self) |
| |
| def __get_fullpath__(self): |
| spec_dir = self.GetDirectory() |
| spec_file = self.GetFilename() |
| if spec_dir and spec_file: |
| return '%s/%s' % (spec_dir, spec_file) |
| elif spec_dir: |
| return spec_dir |
| elif spec_file: |
| return spec_file |
| return None |
| |
| fullpath = property(__get_fullpath__, None, doc='''A read only property that returns the fullpath as a python string.''') |
| basename = property(GetFilename, None, doc='''A read only property that returns the path basename as a python string.''') |
| dirname = property(GetDirectory, None, doc='''A read only property that returns the path directory name as a python string.''') |
| exists = property(Exists, None, doc='''A read only property that returns a boolean value that indicates if the file exists.''') |
| |
| |
| # Register SBFileSpec in _lldb: |
| _lldb.SBFileSpec_swigregister(SBFileSpec) |
| |
| def SBFileSpec_ResolvePath(src_path: "char const *", dst_path: "char *", dst_len: "size_t") -> "int": |
| r"""SBFileSpec_ResolvePath(char const * src_path, char * dst_path, size_t dst_len) -> int""" |
| return _lldb.SBFileSpec_ResolvePath(src_path, dst_path, dst_len) |
| |
| class SBFileSpecList(object): |
| r"""Represents a list of :py:class:`SBFileSpec`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBFileSpecList self) -> SBFileSpecList |
| __init__(SBFileSpecList self, SBFileSpecList rhs) -> SBFileSpecList |
| """ |
| _lldb.SBFileSpecList_swiginit(self, _lldb.new_SBFileSpecList(*args)) |
| __swig_destroy__ = _lldb.delete_SBFileSpecList |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBFileSpecList self) -> uint32_t""" |
| return _lldb.SBFileSpecList_GetSize(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBFileSpecList self, SBStream description) -> bool""" |
| return _lldb.SBFileSpecList_GetDescription(self, description) |
| |
| def Append(self, sb_file: "SBFileSpec") -> "void": |
| r"""Append(SBFileSpecList self, SBFileSpec sb_file)""" |
| return _lldb.SBFileSpecList_Append(self, sb_file) |
| |
| def AppendIfUnique(self, sb_file: "SBFileSpec") -> "bool": |
| r"""AppendIfUnique(SBFileSpecList self, SBFileSpec sb_file) -> bool""" |
| return _lldb.SBFileSpecList_AppendIfUnique(self, sb_file) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBFileSpecList self)""" |
| return _lldb.SBFileSpecList_Clear(self) |
| |
| def FindFileIndex(self, idx: "uint32_t", sb_file: "SBFileSpec", full: "bool") -> "uint32_t": |
| r"""FindFileIndex(SBFileSpecList self, uint32_t idx, SBFileSpec sb_file, bool full) -> uint32_t""" |
| return _lldb.SBFileSpecList_FindFileIndex(self, idx, sb_file, full) |
| |
| def GetFileSpecAtIndex(self, idx: "uint32_t") -> "lldb::SBFileSpec const": |
| r"""GetFileSpecAtIndex(SBFileSpecList self, uint32_t idx) -> SBFileSpec""" |
| return _lldb.SBFileSpecList_GetFileSpecAtIndex(self, idx) |
| |
| # Register SBFileSpecList in _lldb: |
| _lldb.SBFileSpecList_swigregister(SBFileSpecList) |
| |
| class SBFrame(object): |
| r""" |
| Represents one of the stack frames associated with a thread. |
| |
| SBThread contains SBFrame(s). For example (from test/lldbutil.py), :: |
| |
| def print_stacktrace(thread, string_buffer = False): |
| '''Prints a simple stack trace of this thread.''' |
| |
| ... |
| |
| for i in range(depth): |
| frame = thread.GetFrameAtIndex(i) |
| function = frame.GetFunction() |
| |
| load_addr = addrs[i].GetLoadAddress(target) |
| if not function: |
| file_addr = addrs[i].GetFileAddress() |
| start_addr = frame.GetSymbol().GetStartAddress().GetFileAddress() |
| symbol_offset = file_addr - start_addr |
| print >> output, ' frame #{num}: {addr:#016x} {mod}`{symbol} + {offset}'.format( |
| num=i, addr=load_addr, mod=mods[i], symbol=symbols[i], offset=symbol_offset) |
| else: |
| print >> output, ' frame #{num}: {addr:#016x} {mod}`{func} at {file}:{line} {args}'.format( |
| num=i, addr=load_addr, mod=mods[i], |
| func='%s [inlined]' % funcs[i] if frame.IsInlined() else funcs[i], |
| file=files[i], line=lines[i], |
| args=get_args_as_string(frame, showFuncName=False) if not frame.IsInlined() else '()') |
| |
| ... |
| |
| And, :: |
| |
| for frame in thread: |
| print frame |
| |
| See also SBThread. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBFrame self) -> SBFrame |
| __init__(SBFrame self, SBFrame rhs) -> SBFrame |
| """ |
| _lldb.SBFrame_swiginit(self, _lldb.new_SBFrame(*args)) |
| __swig_destroy__ = _lldb.delete_SBFrame |
| |
| def IsEqual(self, rhs: "SBFrame") -> "bool": |
| r"""IsEqual(SBFrame self, SBFrame rhs) -> bool""" |
| return _lldb.SBFrame_IsEqual(self, rhs) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBFrame self) -> bool""" |
| return _lldb.SBFrame_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBFrame___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetFrameID(self) -> "uint32_t": |
| r"""GetFrameID(SBFrame self) -> uint32_t""" |
| return _lldb.SBFrame_GetFrameID(self) |
| |
| def GetCFA(self) -> "lldb::addr_t": |
| r""" |
| GetCFA(SBFrame self) -> lldb::addr_t |
| |
| Get the Canonical Frame Address for this stack frame. |
| This is the DWARF standard's definition of a CFA, a stack address |
| that remains constant throughout the lifetime of the function. |
| Returns an lldb::addr_t stack address, or LLDB_INVALID_ADDRESS if |
| the CFA cannot be determined. |
| """ |
| return _lldb.SBFrame_GetCFA(self) |
| |
| def GetPC(self) -> "lldb::addr_t": |
| r"""GetPC(SBFrame self) -> lldb::addr_t""" |
| return _lldb.SBFrame_GetPC(self) |
| |
| def SetPC(self, new_pc: "lldb::addr_t") -> "bool": |
| r"""SetPC(SBFrame self, lldb::addr_t new_pc) -> bool""" |
| return _lldb.SBFrame_SetPC(self, new_pc) |
| |
| def GetSP(self) -> "lldb::addr_t": |
| r"""GetSP(SBFrame self) -> lldb::addr_t""" |
| return _lldb.SBFrame_GetSP(self) |
| |
| def GetFP(self) -> "lldb::addr_t": |
| r"""GetFP(SBFrame self) -> lldb::addr_t""" |
| return _lldb.SBFrame_GetFP(self) |
| |
| def GetPCAddress(self) -> "lldb::SBAddress": |
| r"""GetPCAddress(SBFrame self) -> SBAddress""" |
| return _lldb.SBFrame_GetPCAddress(self) |
| |
| def GetSymbolContext(self, resolve_scope: "uint32_t") -> "lldb::SBSymbolContext": |
| r"""GetSymbolContext(SBFrame self, uint32_t resolve_scope) -> SBSymbolContext""" |
| return _lldb.SBFrame_GetSymbolContext(self, resolve_scope) |
| |
| def GetModule(self) -> "lldb::SBModule": |
| r"""GetModule(SBFrame self) -> SBModule""" |
| return _lldb.SBFrame_GetModule(self) |
| |
| def GetCompileUnit(self) -> "lldb::SBCompileUnit": |
| r"""GetCompileUnit(SBFrame self) -> SBCompileUnit""" |
| return _lldb.SBFrame_GetCompileUnit(self) |
| |
| def GetFunction(self) -> "lldb::SBFunction": |
| r"""GetFunction(SBFrame self) -> SBFunction""" |
| return _lldb.SBFrame_GetFunction(self) |
| |
| def GetSymbol(self) -> "lldb::SBSymbol": |
| r"""GetSymbol(SBFrame self) -> SBSymbol""" |
| return _lldb.SBFrame_GetSymbol(self) |
| |
| def GetBlock(self) -> "lldb::SBBlock": |
| r""" |
| GetBlock(SBFrame self) -> SBBlock |
| |
| Gets the deepest block that contains the frame PC. |
| |
| See also GetFrameBlock(). |
| """ |
| return _lldb.SBFrame_GetBlock(self) |
| |
| def GetDisplayFunctionName(self) -> "char const *": |
| r"""GetDisplayFunctionName(SBFrame self) -> char const *""" |
| return _lldb.SBFrame_GetDisplayFunctionName(self) |
| |
| def GetFunctionName(self, *args) -> "char const *": |
| r""" |
| GetFunctionName(SBFrame self) -> char const |
| GetFunctionName(SBFrame self) -> char const * |
| |
| Get the appropriate function name for this frame. Inlined functions in |
| LLDB are represented by Blocks that have inlined function information, so |
| just looking at the SBFunction or SBSymbol for a frame isn't enough. |
| This function will return the appropriate function, symbol or inlined |
| function name for the frame. |
| |
| This function returns: |
| - the name of the inlined function (if there is one) |
| - the name of the concrete function (if there is one) |
| - the name of the symbol (if there is one) |
| - NULL |
| |
| See also IsInlined(). |
| """ |
| return _lldb.SBFrame_GetFunctionName(self, *args) |
| |
| def GuessLanguage(self) -> "lldb::LanguageType": |
| r""" |
| GuessLanguage(SBFrame self) -> lldb::LanguageType |
| |
| Returns the language of the frame's SBFunction, or if there. |
| is no SBFunction, guess the language from the mangled name. |
| . |
| """ |
| return _lldb.SBFrame_GuessLanguage(self) |
| |
| def IsInlined(self, *args) -> "bool": |
| r""" |
| IsInlined(SBFrame self) -> bool |
| IsInlined(SBFrame self) -> bool |
| |
| Return true if this frame represents an inlined function. |
| |
| See also GetFunctionName(). |
| """ |
| return _lldb.SBFrame_IsInlined(self, *args) |
| |
| def IsArtificial(self, *args) -> "bool": |
| r""" |
| IsArtificial(SBFrame self) -> bool |
| IsArtificial(SBFrame self) -> bool |
| |
| Return true if this frame is artificial (e.g a frame synthesized to |
| capture a tail call). Local variables may not be available in an artificial |
| frame. |
| """ |
| return _lldb.SBFrame_IsArtificial(self, *args) |
| |
| def EvaluateExpression(self, *args) -> "lldb::SBValue": |
| r""" |
| EvaluateExpression(SBFrame self, char const * expr) -> SBValue |
| EvaluateExpression(SBFrame self, char const * expr, lldb::DynamicValueType use_dynamic) -> SBValue |
| EvaluateExpression(SBFrame self, char const * expr, lldb::DynamicValueType use_dynamic, bool unwind_on_error) -> SBValue |
| EvaluateExpression(SBFrame self, char const * expr, SBExpressionOptions options) -> SBValue |
| |
| The version that doesn't supply a 'use_dynamic' value will use the |
| target's default. |
| """ |
| return _lldb.SBFrame_EvaluateExpression(self, *args) |
| |
| def GetFrameBlock(self) -> "lldb::SBBlock": |
| r""" |
| GetFrameBlock(SBFrame self) -> SBBlock |
| |
| Gets the lexical block that defines the stack frame. Another way to think |
| of this is it will return the block that contains all of the variables |
| for a stack frame. Inlined functions are represented as SBBlock objects |
| that have inlined function information: the name of the inlined function, |
| where it was called from. The block that is returned will be the first |
| block at or above the block for the PC (SBFrame::GetBlock()) that defines |
| the scope of the frame. When a function contains no inlined functions, |
| this will be the top most lexical block that defines the function. |
| When a function has inlined functions and the PC is currently |
| in one of those inlined functions, this method will return the inlined |
| block that defines this frame. If the PC isn't currently in an inlined |
| function, the lexical block that defines the function is returned. |
| """ |
| return _lldb.SBFrame_GetFrameBlock(self) |
| |
| def GetLineEntry(self) -> "lldb::SBLineEntry": |
| r"""GetLineEntry(SBFrame self) -> SBLineEntry""" |
| return _lldb.SBFrame_GetLineEntry(self) |
| |
| def GetThread(self) -> "lldb::SBThread": |
| r"""GetThread(SBFrame self) -> SBThread""" |
| return _lldb.SBFrame_GetThread(self) |
| |
| def Disassemble(self) -> "char const *": |
| r"""Disassemble(SBFrame self) -> char const *""" |
| return _lldb.SBFrame_Disassemble(self) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBFrame self)""" |
| return _lldb.SBFrame_Clear(self) |
| |
| def __eq__(self, rhs: "SBFrame") -> "bool": |
| r"""__eq__(SBFrame self, SBFrame rhs) -> bool""" |
| return _lldb.SBFrame___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBFrame") -> "bool": |
| r"""__ne__(SBFrame self, SBFrame rhs) -> bool""" |
| return _lldb.SBFrame___ne__(self, rhs) |
| |
| def GetVariables(self, *args) -> "lldb::SBValueList": |
| r""" |
| GetVariables(SBFrame self, bool arguments, bool locals, bool statics, bool in_scope_only) -> SBValueList |
| GetVariables(SBFrame self, bool arguments, bool locals, bool statics, bool in_scope_only, lldb::DynamicValueType use_dynamic) -> SBValueList |
| GetVariables(SBFrame self, SBVariablesOptions options) -> SBValueList |
| |
| The version that doesn't supply a 'use_dynamic' value will use the |
| target's default. |
| """ |
| return _lldb.SBFrame_GetVariables(self, *args) |
| |
| def GetRegisters(self) -> "lldb::SBValueList": |
| r"""GetRegisters(SBFrame self) -> SBValueList""" |
| return _lldb.SBFrame_GetRegisters(self) |
| |
| def FindVariable(self, *args) -> "lldb::SBValue": |
| r""" |
| FindVariable(SBFrame self, char const * var_name) -> SBValue |
| FindVariable(SBFrame self, char const * var_name, lldb::DynamicValueType use_dynamic) -> SBValue |
| |
| The version that doesn't supply a 'use_dynamic' value will use the |
| target's default. |
| """ |
| return _lldb.SBFrame_FindVariable(self, *args) |
| |
| def FindRegister(self, name: "char const *") -> "lldb::SBValue": |
| r"""FindRegister(SBFrame self, char const * name) -> SBValue""" |
| return _lldb.SBFrame_FindRegister(self, name) |
| |
| def GetValueForVariablePath(self, *args) -> "lldb::SBValue": |
| r""" |
| GetValueForVariablePath(SBFrame self, char const * var_path) -> SBValue |
| GetValueForVariablePath(SBFrame self, char const * var_path, lldb::DynamicValueType use_dynamic) -> SBValue |
| |
| Get a lldb.SBValue for a variable path. |
| |
| Variable paths can include access to pointer or instance members: :: |
| |
| rect_ptr->origin.y |
| pt.x |
| |
| Pointer dereferences: :: |
| |
| *this->foo_ptr |
| **argv |
| |
| Address of: :: |
| |
| &pt |
| &my_array[3].x |
| |
| Array accesses and treating pointers as arrays: :: |
| |
| int_array[1] |
| pt_ptr[22].x |
| |
| Unlike `EvaluateExpression()` which returns :py:class:`SBValue` objects |
| with constant copies of the values at the time of evaluation, |
| the result of this function is a value that will continue to |
| track the current value of the value as execution progresses |
| in the current frame. |
| """ |
| return _lldb.SBFrame_GetValueForVariablePath(self, *args) |
| |
| def FindValue(self, *args) -> "lldb::SBValue": |
| r""" |
| FindValue(SBFrame self, char const * name, lldb::ValueType value_type) -> SBValue |
| FindValue(SBFrame self, char const * name, lldb::ValueType value_type, lldb::DynamicValueType use_dynamic) -> SBValue |
| |
| Find variables, register sets, registers, or persistent variables using |
| the frame as the scope. |
| |
| The version that doesn't supply a ``use_dynamic`` value will use the |
| target's default. |
| """ |
| return _lldb.SBFrame_FindValue(self, *args) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBFrame self, SBStream description) -> bool""" |
| return _lldb.SBFrame_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBFrame self) -> std::string""" |
| return _lldb.SBFrame___str__(self) |
| |
| def get_all_variables(self): |
| return self.GetVariables(True,True,True,True) |
| |
| def get_parent_frame(self): |
| parent_idx = self.idx + 1 |
| if parent_idx >= 0 and parent_idx < len(self.thread.frame): |
| return self.thread.frame[parent_idx] |
| else: |
| return SBFrame() |
| |
| def get_arguments(self): |
| return self.GetVariables(True,False,False,False) |
| |
| def get_locals(self): |
| return self.GetVariables(False,True,False,False) |
| |
| def get_statics(self): |
| return self.GetVariables(False,False,True,False) |
| |
| def var(self, var_expr_path): |
| '''Calls through to lldb.SBFrame.GetValueForVariablePath() and returns |
| a value that represents the variable expression path''' |
| return self.GetValueForVariablePath(var_expr_path) |
| |
| def get_registers_access(self): |
| class registers_access(object): |
| '''A helper object that exposes a flattened view of registers, masking away the notion of register sets for easy scripting.''' |
| def __init__(self, regs): |
| self.regs = regs |
| |
| def __getitem__(self, key): |
| if type(key) is str: |
| for i in range(0,len(self.regs)): |
| rs = self.regs[i] |
| for j in range (0,rs.num_children): |
| reg = rs.GetChildAtIndex(j) |
| if reg.name == key: return reg |
| else: |
| return lldb.SBValue() |
| |
| return registers_access(self.registers) |
| |
| pc = property(GetPC, SetPC) |
| addr = property(GetPCAddress, None, doc='''A read only property that returns the program counter (PC) as a section offset address (lldb.SBAddress).''') |
| fp = property(GetFP, None, doc='''A read only property that returns the frame pointer (FP) as an unsigned integer.''') |
| sp = property(GetSP, None, doc='''A read only property that returns the stack pointer (SP) as an unsigned integer.''') |
| module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) for this stack frame.''') |
| compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) for this stack frame.''') |
| function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) for this stack frame.''') |
| symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) for this stack frame.''') |
| block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) for this stack frame.''') |
| is_inlined = property(IsInlined, None, doc='''A read only property that returns an boolean that indicates if the block frame is an inlined function.''') |
| name = property(GetFunctionName, None, doc='''A read only property that retuns the name for the function that this frame represents. Inlined stack frame might have a concrete function that differs from the name of the inlined function (a named lldb.SBBlock).''') |
| line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line table entry (lldb.SBLineEntry) for this stack frame.''') |
| thread = property(GetThread, None, doc='''A read only property that returns an lldb object that represents the thread (lldb.SBThread) for this stack frame.''') |
| disassembly = property(Disassemble, None, doc='''A read only property that returns the disassembly for this stack frame as a python string.''') |
| idx = property(GetFrameID, None, doc='''A read only property that returns the zero based stack frame index.''') |
| variables = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''') |
| vars = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''') |
| locals = property(get_locals, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the local variables in this stack frame.''') |
| args = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''') |
| arguments = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''') |
| statics = property(get_statics, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the static variables in this stack frame.''') |
| registers = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''') |
| regs = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''') |
| register = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame.''') |
| reg = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame''') |
| parent = property(get_parent_frame, None, doc='''A read only property that returns the parent (caller) frame of the current frame.''') |
| |
| |
| # Register SBFrame in _lldb: |
| _lldb.SBFrame_swigregister(SBFrame) |
| |
| class SBFunction(object): |
| r""" |
| Represents a generic function, which can be inlined or not. |
| |
| For example (from test/lldbutil.py, but slightly modified for doc purpose),:: |
| |
| ... |
| |
| frame = thread.GetFrameAtIndex(i) |
| addr = frame.GetPCAddress() |
| load_addr = addr.GetLoadAddress(target) |
| function = frame.GetFunction() |
| mod_name = frame.GetModule().GetFileSpec().GetFilename() |
| |
| if not function: |
| # No debug info for 'function'. |
| symbol = frame.GetSymbol() |
| file_addr = addr.GetFileAddress() |
| start_addr = symbol.GetStartAddress().GetFileAddress() |
| symbol_name = symbol.GetName() |
| symbol_offset = file_addr - start_addr |
| print >> output, ' frame #{num}: {addr:#016x} {mod}`{symbol} + {offset}'.format( |
| num=i, addr=load_addr, mod=mod_name, symbol=symbol_name, offset=symbol_offset) |
| else: |
| # Debug info is available for 'function'. |
| func_name = frame.GetFunctionName() |
| file_name = frame.GetLineEntry().GetFileSpec().GetFilename() |
| line_num = frame.GetLineEntry().GetLine() |
| print >> output, ' frame #{num}: {addr:#016x} {mod}`{func} at {file}:{line} {args}'.format( |
| num=i, addr=load_addr, mod=mod_name, |
| func='%s [inlined]' % func_name] if frame.IsInlined() else func_name, |
| file=file_name, line=line_num, args=get_args_as_string(frame, showFuncName=False)) |
| |
| ... |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBFunction self) -> SBFunction |
| __init__(SBFunction self, SBFunction rhs) -> SBFunction |
| """ |
| _lldb.SBFunction_swiginit(self, _lldb.new_SBFunction(*args)) |
| __swig_destroy__ = _lldb.delete_SBFunction |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBFunction self) -> bool""" |
| return _lldb.SBFunction_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBFunction___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBFunction self) -> char const *""" |
| return _lldb.SBFunction_GetName(self) |
| |
| def GetDisplayName(self) -> "char const *": |
| r"""GetDisplayName(SBFunction self) -> char const *""" |
| return _lldb.SBFunction_GetDisplayName(self) |
| |
| def GetMangledName(self) -> "char const *": |
| r"""GetMangledName(SBFunction self) -> char const *""" |
| return _lldb.SBFunction_GetMangledName(self) |
| |
| def GetInstructions(self, *args) -> "lldb::SBInstructionList": |
| r""" |
| GetInstructions(SBFunction self, SBTarget target) -> SBInstructionList |
| GetInstructions(SBFunction self, SBTarget target, char const * flavor) -> SBInstructionList |
| """ |
| return _lldb.SBFunction_GetInstructions(self, *args) |
| |
| def GetStartAddress(self) -> "lldb::SBAddress": |
| r"""GetStartAddress(SBFunction self) -> SBAddress""" |
| return _lldb.SBFunction_GetStartAddress(self) |
| |
| def GetEndAddress(self) -> "lldb::SBAddress": |
| r"""GetEndAddress(SBFunction self) -> SBAddress""" |
| return _lldb.SBFunction_GetEndAddress(self) |
| |
| def GetArgumentName(self, arg_idx: "uint32_t") -> "char const *": |
| r"""GetArgumentName(SBFunction self, uint32_t arg_idx) -> char const *""" |
| return _lldb.SBFunction_GetArgumentName(self, arg_idx) |
| |
| def GetPrologueByteSize(self) -> "uint32_t": |
| r"""GetPrologueByteSize(SBFunction self) -> uint32_t""" |
| return _lldb.SBFunction_GetPrologueByteSize(self) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBFunction self) -> SBType""" |
| return _lldb.SBFunction_GetType(self) |
| |
| def GetBlock(self) -> "lldb::SBBlock": |
| r"""GetBlock(SBFunction self) -> SBBlock""" |
| return _lldb.SBFunction_GetBlock(self) |
| |
| def GetLanguage(self) -> "lldb::LanguageType": |
| r"""GetLanguage(SBFunction self) -> lldb::LanguageType""" |
| return _lldb.SBFunction_GetLanguage(self) |
| |
| def GetIsOptimized(self) -> "bool": |
| r""" |
| GetIsOptimized(SBFunction self) -> bool |
| |
| Returns true if the function was compiled with optimization. |
| Optimization, in this case, is meant to indicate that the debugger |
| experience may be confusing for the user -- variables optimized away, |
| stepping jumping between source lines -- and the driver may want to |
| provide some guidance to the user about this. |
| Returns false if unoptimized, or unknown. |
| """ |
| return _lldb.SBFunction_GetIsOptimized(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBFunction self, SBStream description) -> bool""" |
| return _lldb.SBFunction_GetDescription(self, description) |
| |
| def __eq__(self, rhs: "SBFunction") -> "bool": |
| r"""__eq__(SBFunction self, SBFunction rhs) -> bool""" |
| return _lldb.SBFunction___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBFunction") -> "bool": |
| r"""__ne__(SBFunction self, SBFunction rhs) -> bool""" |
| return _lldb.SBFunction___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBFunction self) -> std::string""" |
| return _lldb.SBFunction___str__(self) |
| |
| def get_instructions_from_current_target (self): |
| return self.GetInstructions (target) |
| |
| addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this function.''') |
| end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this function.''') |
| block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the top level lexical block (lldb.SBBlock) for this function.''') |
| 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 function.''') |
| mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this function as a string.''') |
| name = property(GetName, None, doc='''A read only property that returns the name for this function as a string.''') |
| prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''') |
| type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the return type (lldb.SBType) for this function.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBFunction in _lldb: |
| _lldb.SBFunction_swigregister(SBFunction) |
| |
| class SBHostOS(object): |
| r"""Provides information about the host system.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def GetProgramFileSpec() -> "lldb::SBFileSpec": |
| r"""GetProgramFileSpec() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetProgramFileSpec() |
| |
| @staticmethod |
| def GetLLDBPythonPath() -> "lldb::SBFileSpec": |
| r"""GetLLDBPythonPath() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetLLDBPythonPath() |
| |
| @staticmethod |
| def GetLLDBPath(path_type: "lldb::PathType") -> "lldb::SBFileSpec": |
| r"""GetLLDBPath(lldb::PathType path_type) -> SBFileSpec""" |
| return _lldb.SBHostOS_GetLLDBPath(path_type) |
| |
| @staticmethod |
| def GetUserHomeDirectory() -> "lldb::SBFileSpec": |
| r"""GetUserHomeDirectory() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetUserHomeDirectory() |
| |
| @staticmethod |
| def ThreadCreated(name: "char const *") -> "void": |
| r"""ThreadCreated(char const * name)""" |
| return _lldb.SBHostOS_ThreadCreated(name) |
| |
| @staticmethod |
| def ThreadCreate(name: "char const *", arg2: "lldb::thread_func_t", thread_arg: "void *", err: "SBError") -> "lldb::thread_t": |
| r"""ThreadCreate(char const * name, lldb::thread_func_t arg2, void * thread_arg, SBError err) -> lldb::thread_t""" |
| return _lldb.SBHostOS_ThreadCreate(name, arg2, thread_arg, err) |
| |
| @staticmethod |
| def ThreadCancel(thread: "lldb::thread_t", err: "SBError") -> "bool": |
| r"""ThreadCancel(lldb::thread_t thread, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadCancel(thread, err) |
| |
| @staticmethod |
| def ThreadDetach(thread: "lldb::thread_t", err: "SBError") -> "bool": |
| r"""ThreadDetach(lldb::thread_t thread, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadDetach(thread, err) |
| |
| @staticmethod |
| def ThreadJoin(thread: "lldb::thread_t", result: "lldb::thread_result_t *", err: "SBError") -> "bool": |
| r"""ThreadJoin(lldb::thread_t thread, lldb::thread_result_t * result, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadJoin(thread, result, err) |
| |
| def __init__(self): |
| r"""__init__(SBHostOS self) -> SBHostOS""" |
| _lldb.SBHostOS_swiginit(self, _lldb.new_SBHostOS()) |
| __swig_destroy__ = _lldb.delete_SBHostOS |
| |
| # Register SBHostOS in _lldb: |
| _lldb.SBHostOS_swigregister(SBHostOS) |
| |
| def SBHostOS_GetProgramFileSpec() -> "lldb::SBFileSpec": |
| r"""SBHostOS_GetProgramFileSpec() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetProgramFileSpec() |
| |
| def SBHostOS_GetLLDBPythonPath() -> "lldb::SBFileSpec": |
| r"""SBHostOS_GetLLDBPythonPath() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetLLDBPythonPath() |
| |
| def SBHostOS_GetLLDBPath(path_type: "lldb::PathType") -> "lldb::SBFileSpec": |
| r"""SBHostOS_GetLLDBPath(lldb::PathType path_type) -> SBFileSpec""" |
| return _lldb.SBHostOS_GetLLDBPath(path_type) |
| |
| def SBHostOS_GetUserHomeDirectory() -> "lldb::SBFileSpec": |
| r"""SBHostOS_GetUserHomeDirectory() -> SBFileSpec""" |
| return _lldb.SBHostOS_GetUserHomeDirectory() |
| |
| def SBHostOS_ThreadCreated(name: "char const *") -> "void": |
| r"""SBHostOS_ThreadCreated(char const * name)""" |
| return _lldb.SBHostOS_ThreadCreated(name) |
| |
| def SBHostOS_ThreadCreate(name: "char const *", arg2: "lldb::thread_func_t", thread_arg: "void *", err: "SBError") -> "lldb::thread_t": |
| r"""SBHostOS_ThreadCreate(char const * name, lldb::thread_func_t arg2, void * thread_arg, SBError err) -> lldb::thread_t""" |
| return _lldb.SBHostOS_ThreadCreate(name, arg2, thread_arg, err) |
| |
| def SBHostOS_ThreadCancel(thread: "lldb::thread_t", err: "SBError") -> "bool": |
| r"""SBHostOS_ThreadCancel(lldb::thread_t thread, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadCancel(thread, err) |
| |
| def SBHostOS_ThreadDetach(thread: "lldb::thread_t", err: "SBError") -> "bool": |
| r"""SBHostOS_ThreadDetach(lldb::thread_t thread, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadDetach(thread, err) |
| |
| def SBHostOS_ThreadJoin(thread: "lldb::thread_t", result: "lldb::thread_result_t *", err: "SBError") -> "bool": |
| r"""SBHostOS_ThreadJoin(lldb::thread_t thread, lldb::thread_result_t * result, SBError err) -> bool""" |
| return _lldb.SBHostOS_ThreadJoin(thread, result, err) |
| |
| class SBInstruction(object): |
| r"""Represents a (machine language) instruction.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBInstruction self) -> SBInstruction |
| __init__(SBInstruction self, SBInstruction rhs) -> SBInstruction |
| """ |
| _lldb.SBInstruction_swiginit(self, _lldb.new_SBInstruction(*args)) |
| __swig_destroy__ = _lldb.delete_SBInstruction |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBInstruction self) -> bool""" |
| return _lldb.SBInstruction_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBInstruction___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetAddress(self) -> "lldb::SBAddress": |
| r"""GetAddress(SBInstruction self) -> SBAddress""" |
| return _lldb.SBInstruction_GetAddress(self) |
| |
| def GetMnemonic(self, target: "SBTarget") -> "char const *": |
| r"""GetMnemonic(SBInstruction self, SBTarget target) -> char const *""" |
| return _lldb.SBInstruction_GetMnemonic(self, target) |
| |
| def GetOperands(self, target: "SBTarget") -> "char const *": |
| r"""GetOperands(SBInstruction self, SBTarget target) -> char const *""" |
| return _lldb.SBInstruction_GetOperands(self, target) |
| |
| def GetComment(self, target: "SBTarget") -> "char const *": |
| r"""GetComment(SBInstruction self, SBTarget target) -> char const *""" |
| return _lldb.SBInstruction_GetComment(self, target) |
| |
| def GetData(self, target: "SBTarget") -> "lldb::SBData": |
| r"""GetData(SBInstruction self, SBTarget target) -> SBData""" |
| return _lldb.SBInstruction_GetData(self, target) |
| |
| def GetByteSize(self) -> "size_t": |
| r"""GetByteSize(SBInstruction self) -> size_t""" |
| return _lldb.SBInstruction_GetByteSize(self) |
| |
| def DoesBranch(self) -> "bool": |
| r"""DoesBranch(SBInstruction self) -> bool""" |
| return _lldb.SBInstruction_DoesBranch(self) |
| |
| def HasDelaySlot(self) -> "bool": |
| r"""HasDelaySlot(SBInstruction self) -> bool""" |
| return _lldb.SBInstruction_HasDelaySlot(self) |
| |
| def CanSetBreakpoint(self) -> "bool": |
| r"""CanSetBreakpoint(SBInstruction self) -> bool""" |
| return _lldb.SBInstruction_CanSetBreakpoint(self) |
| |
| def Print(self, *args) -> "void": |
| r""" |
| Print(SBInstruction self, SBFile out) |
| Print(SBInstruction self, lldb::FileSP BORROWED) |
| """ |
| return _lldb.SBInstruction_Print(self, *args) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBInstruction self, SBStream description) -> bool""" |
| return _lldb.SBInstruction_GetDescription(self, description) |
| |
| def EmulateWithFrame(self, frame: "SBFrame", evaluate_options: "uint32_t") -> "bool": |
| r"""EmulateWithFrame(SBInstruction self, SBFrame frame, uint32_t evaluate_options) -> bool""" |
| return _lldb.SBInstruction_EmulateWithFrame(self, frame, evaluate_options) |
| |
| def DumpEmulation(self, triple: "char const *") -> "bool": |
| r"""DumpEmulation(SBInstruction self, char const * triple) -> bool""" |
| return _lldb.SBInstruction_DumpEmulation(self, triple) |
| |
| def TestEmulation(self, output_stream: "SBStream", test_file: "char const *") -> "bool": |
| r"""TestEmulation(SBInstruction self, SBStream output_stream, char const * test_file) -> bool""" |
| return _lldb.SBInstruction_TestEmulation(self, output_stream, test_file) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBInstruction self) -> std::string""" |
| return _lldb.SBInstruction___str__(self) |
| |
| def __mnemonic_property__ (self): |
| return self.GetMnemonic (target) |
| def __operands_property__ (self): |
| return self.GetOperands (target) |
| def __comment_property__ (self): |
| return self.GetComment (target) |
| def __file_addr_property__ (self): |
| return self.GetAddress ().GetFileAddress() |
| def __load_adrr_property__ (self): |
| return self.GetComment (target) |
| |
| mnemonic = property(__mnemonic_property__, None, doc='''A read only property that returns the mnemonic for this instruction as a string.''') |
| operands = property(__operands_property__, None, doc='''A read only property that returns the operands for this instruction as a string.''') |
| comment = property(__comment_property__, None, doc='''A read only property that returns the comment for this instruction as a string.''') |
| addr = property(GetAddress, None, doc='''A read only property that returns an lldb object that represents the address (lldb.SBAddress) for this instruction.''') |
| size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes for this instruction as an integer.''') |
| is_branch = property(DoesBranch, None, doc='''A read only property that returns a boolean value that indicates if this instruction is a branch instruction.''') |
| |
| |
| # Register SBInstruction in _lldb: |
| _lldb.SBInstruction_swigregister(SBInstruction) |
| |
| class SBInstructionList(object): |
| r""" |
| Represents a list of machine instructions. SBFunction and SBSymbol have |
| GetInstructions() methods which return SBInstructionList instances. |
| |
| SBInstructionList supports instruction (:py:class:`SBInstruction` instance) iteration. |
| For example (see also :py:class:`SBDebugger` for a more complete example), :: |
| |
| def disassemble_instructions (insts): |
| for i in insts: |
| print i |
| |
| defines a function which takes an SBInstructionList instance and prints out |
| the machine instructions in assembly format. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBInstructionList self) -> SBInstructionList |
| __init__(SBInstructionList self, SBInstructionList rhs) -> SBInstructionList |
| """ |
| _lldb.SBInstructionList_swiginit(self, _lldb.new_SBInstructionList(*args)) |
| __swig_destroy__ = _lldb.delete_SBInstructionList |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBInstructionList self) -> bool""" |
| return _lldb.SBInstructionList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBInstructionList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetSize(self) -> "size_t": |
| r"""GetSize(SBInstructionList self) -> size_t""" |
| return _lldb.SBInstructionList_GetSize(self) |
| |
| def GetInstructionAtIndex(self, idx: "uint32_t") -> "lldb::SBInstruction": |
| r"""GetInstructionAtIndex(SBInstructionList self, uint32_t idx) -> SBInstruction""" |
| return _lldb.SBInstructionList_GetInstructionAtIndex(self, idx) |
| |
| def GetInstructionsCount(self, start: "SBAddress", end: "SBAddress", canSetBreakpoint: "bool") -> "size_t": |
| r"""GetInstructionsCount(SBInstructionList self, SBAddress start, SBAddress end, bool canSetBreakpoint) -> size_t""" |
| return _lldb.SBInstructionList_GetInstructionsCount(self, start, end, canSetBreakpoint) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBInstructionList self)""" |
| return _lldb.SBInstructionList_Clear(self) |
| |
| def AppendInstruction(self, inst: "SBInstruction") -> "void": |
| r"""AppendInstruction(SBInstructionList self, SBInstruction inst)""" |
| return _lldb.SBInstructionList_AppendInstruction(self, inst) |
| |
| def Print(self, *args) -> "void": |
| r""" |
| Print(SBInstructionList self, SBFile out) |
| Print(SBInstructionList self, lldb::FileSP BORROWED) |
| """ |
| return _lldb.SBInstructionList_Print(self, *args) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBInstructionList self, SBStream description) -> bool""" |
| return _lldb.SBInstructionList_GetDescription(self, description) |
| |
| def DumpEmulationForAllInstructions(self, triple: "char const *") -> "bool": |
| r"""DumpEmulationForAllInstructions(SBInstructionList self, char const * triple) -> bool""" |
| return _lldb.SBInstructionList_DumpEmulationForAllInstructions(self, triple) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBInstructionList self) -> std::string""" |
| return _lldb.SBInstructionList___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all instructions in a lldb.SBInstructionList |
| object.''' |
| return lldb_iter(self, 'GetSize', 'GetInstructionAtIndex') |
| |
| def __len__(self): |
| '''Access len of the instruction list.''' |
| return int(self.GetSize()) |
| |
| def __getitem__(self, key): |
| '''Access instructions by integer index for array access or by lldb.SBAddress to find an instruction that matches a section offset address object.''' |
| if type(key) is int: |
| # Find an instruction by index |
| if key < len(self): |
| return self.GetInstructionAtIndex(key) |
| elif type(key) is SBAddress: |
| # Find an instruction using a lldb.SBAddress object |
| lookup_file_addr = key.file_addr |
| closest_inst = None |
| for idx in range(self.GetSize()): |
| inst = self.GetInstructionAtIndex(idx) |
| inst_file_addr = inst.addr.file_addr |
| if inst_file_addr == lookup_file_addr: |
| return inst |
| elif inst_file_addr > lookup_file_addr: |
| return closest_inst |
| else: |
| closest_inst = inst |
| return None |
| |
| |
| # Register SBInstructionList in _lldb: |
| _lldb.SBInstructionList_swigregister(SBInstructionList) |
| |
| class SBLanguageRuntime(object): |
| r"""Utility functions for :ref:`LanguageType`""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def GetLanguageTypeFromString(string: "char const *") -> "lldb::LanguageType": |
| r"""GetLanguageTypeFromString(char const * string) -> lldb::LanguageType""" |
| return _lldb.SBLanguageRuntime_GetLanguageTypeFromString(string) |
| |
| @staticmethod |
| def GetNameForLanguageType(language: "lldb::LanguageType") -> "char const *": |
| r"""GetNameForLanguageType(lldb::LanguageType language) -> char const *""" |
| return _lldb.SBLanguageRuntime_GetNameForLanguageType(language) |
| |
| def __init__(self): |
| r"""__init__(SBLanguageRuntime self) -> SBLanguageRuntime""" |
| _lldb.SBLanguageRuntime_swiginit(self, _lldb.new_SBLanguageRuntime()) |
| __swig_destroy__ = _lldb.delete_SBLanguageRuntime |
| |
| # Register SBLanguageRuntime in _lldb: |
| _lldb.SBLanguageRuntime_swigregister(SBLanguageRuntime) |
| |
| def SBLanguageRuntime_GetLanguageTypeFromString(string: "char const *") -> "lldb::LanguageType": |
| r"""SBLanguageRuntime_GetLanguageTypeFromString(char const * string) -> lldb::LanguageType""" |
| return _lldb.SBLanguageRuntime_GetLanguageTypeFromString(string) |
| |
| def SBLanguageRuntime_GetNameForLanguageType(language: "lldb::LanguageType") -> "char const *": |
| r"""SBLanguageRuntime_GetNameForLanguageType(lldb::LanguageType language) -> char const *""" |
| return _lldb.SBLanguageRuntime_GetNameForLanguageType(language) |
| |
| class SBLaunchInfo(object): |
| r"""Describes how a target or program should be launched.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, argv: "char const **"): |
| r"""__init__(SBLaunchInfo self, char const ** argv) -> SBLaunchInfo""" |
| _lldb.SBLaunchInfo_swiginit(self, _lldb.new_SBLaunchInfo(argv)) |
| |
| def GetProcessID(self) -> "lldb::pid_t": |
| r"""GetProcessID(SBLaunchInfo self) -> lldb::pid_t""" |
| return _lldb.SBLaunchInfo_GetProcessID(self) |
| |
| def GetUserID(self) -> "uint32_t": |
| r"""GetUserID(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetUserID(self) |
| |
| def GetGroupID(self) -> "uint32_t": |
| r"""GetGroupID(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetGroupID(self) |
| |
| def UserIDIsValid(self) -> "bool": |
| r"""UserIDIsValid(SBLaunchInfo self) -> bool""" |
| return _lldb.SBLaunchInfo_UserIDIsValid(self) |
| |
| def GroupIDIsValid(self) -> "bool": |
| r"""GroupIDIsValid(SBLaunchInfo self) -> bool""" |
| return _lldb.SBLaunchInfo_GroupIDIsValid(self) |
| |
| def SetUserID(self, uid: "uint32_t") -> "void": |
| r"""SetUserID(SBLaunchInfo self, uint32_t uid)""" |
| return _lldb.SBLaunchInfo_SetUserID(self, uid) |
| |
| def SetGroupID(self, gid: "uint32_t") -> "void": |
| r"""SetGroupID(SBLaunchInfo self, uint32_t gid)""" |
| return _lldb.SBLaunchInfo_SetGroupID(self, gid) |
| |
| def GetExecutableFile(self) -> "lldb::SBFileSpec": |
| r"""GetExecutableFile(SBLaunchInfo self) -> SBFileSpec""" |
| return _lldb.SBLaunchInfo_GetExecutableFile(self) |
| |
| def SetExecutableFile(self, exe_file: "SBFileSpec", add_as_first_arg: "bool") -> "void": |
| r"""SetExecutableFile(SBLaunchInfo self, SBFileSpec exe_file, bool add_as_first_arg)""" |
| return _lldb.SBLaunchInfo_SetExecutableFile(self, exe_file, add_as_first_arg) |
| |
| def GetListener(self) -> "lldb::SBListener": |
| r"""GetListener(SBLaunchInfo self) -> SBListener""" |
| return _lldb.SBLaunchInfo_GetListener(self) |
| |
| def SetListener(self, listener: "SBListener") -> "void": |
| r"""SetListener(SBLaunchInfo self, SBListener listener)""" |
| return _lldb.SBLaunchInfo_SetListener(self, listener) |
| |
| def GetNumArguments(self) -> "uint32_t": |
| r"""GetNumArguments(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetNumArguments(self) |
| |
| def GetArgumentAtIndex(self, idx: "uint32_t") -> "char const *": |
| r"""GetArgumentAtIndex(SBLaunchInfo self, uint32_t idx) -> char const *""" |
| return _lldb.SBLaunchInfo_GetArgumentAtIndex(self, idx) |
| |
| def SetArguments(self, argv: "char const **", append: "bool") -> "void": |
| r"""SetArguments(SBLaunchInfo self, char const ** argv, bool append)""" |
| return _lldb.SBLaunchInfo_SetArguments(self, argv, append) |
| |
| def GetNumEnvironmentEntries(self) -> "uint32_t": |
| r"""GetNumEnvironmentEntries(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetNumEnvironmentEntries(self) |
| |
| def GetEnvironmentEntryAtIndex(self, idx: "uint32_t") -> "char const *": |
| r"""GetEnvironmentEntryAtIndex(SBLaunchInfo self, uint32_t idx) -> char const *""" |
| return _lldb.SBLaunchInfo_GetEnvironmentEntryAtIndex(self, idx) |
| |
| def SetEnvironmentEntries(self, envp: "char const **", append: "bool") -> "void": |
| r"""SetEnvironmentEntries(SBLaunchInfo self, char const ** envp, bool append)""" |
| return _lldb.SBLaunchInfo_SetEnvironmentEntries(self, envp, append) |
| |
| def SetEnvironment(self, env: "SBEnvironment", append: "bool") -> "void": |
| r"""SetEnvironment(SBLaunchInfo self, SBEnvironment env, bool append)""" |
| return _lldb.SBLaunchInfo_SetEnvironment(self, env, append) |
| |
| def GetEnvironment(self) -> "lldb::SBEnvironment": |
| r"""GetEnvironment(SBLaunchInfo self) -> SBEnvironment""" |
| return _lldb.SBLaunchInfo_GetEnvironment(self) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBLaunchInfo self)""" |
| return _lldb.SBLaunchInfo_Clear(self) |
| |
| def GetWorkingDirectory(self) -> "char const *": |
| r"""GetWorkingDirectory(SBLaunchInfo self) -> char const *""" |
| return _lldb.SBLaunchInfo_GetWorkingDirectory(self) |
| |
| def SetWorkingDirectory(self, working_dir: "char const *") -> "void": |
| r"""SetWorkingDirectory(SBLaunchInfo self, char const * working_dir)""" |
| return _lldb.SBLaunchInfo_SetWorkingDirectory(self, working_dir) |
| |
| def GetLaunchFlags(self) -> "uint32_t": |
| r"""GetLaunchFlags(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetLaunchFlags(self) |
| |
| def SetLaunchFlags(self, flags: "uint32_t") -> "void": |
| r"""SetLaunchFlags(SBLaunchInfo self, uint32_t flags)""" |
| return _lldb.SBLaunchInfo_SetLaunchFlags(self, flags) |
| |
| def GetProcessPluginName(self) -> "char const *": |
| r"""GetProcessPluginName(SBLaunchInfo self) -> char const *""" |
| return _lldb.SBLaunchInfo_GetProcessPluginName(self) |
| |
| def SetProcessPluginName(self, plugin_name: "char const *") -> "void": |
| r"""SetProcessPluginName(SBLaunchInfo self, char const * plugin_name)""" |
| return _lldb.SBLaunchInfo_SetProcessPluginName(self, plugin_name) |
| |
| def GetShell(self) -> "char const *": |
| r"""GetShell(SBLaunchInfo self) -> char const *""" |
| return _lldb.SBLaunchInfo_GetShell(self) |
| |
| def SetShell(self, path: "char const *") -> "void": |
| r"""SetShell(SBLaunchInfo self, char const * path)""" |
| return _lldb.SBLaunchInfo_SetShell(self, path) |
| |
| def GetShellExpandArguments(self) -> "bool": |
| r"""GetShellExpandArguments(SBLaunchInfo self) -> bool""" |
| return _lldb.SBLaunchInfo_GetShellExpandArguments(self) |
| |
| def SetShellExpandArguments(self, expand: "bool") -> "void": |
| r"""SetShellExpandArguments(SBLaunchInfo self, bool expand)""" |
| return _lldb.SBLaunchInfo_SetShellExpandArguments(self, expand) |
| |
| def GetResumeCount(self) -> "uint32_t": |
| r"""GetResumeCount(SBLaunchInfo self) -> uint32_t""" |
| return _lldb.SBLaunchInfo_GetResumeCount(self) |
| |
| def SetResumeCount(self, c: "uint32_t") -> "void": |
| r"""SetResumeCount(SBLaunchInfo self, uint32_t c)""" |
| return _lldb.SBLaunchInfo_SetResumeCount(self, c) |
| |
| def AddCloseFileAction(self, fd: "int") -> "bool": |
| r"""AddCloseFileAction(SBLaunchInfo self, int fd) -> bool""" |
| return _lldb.SBLaunchInfo_AddCloseFileAction(self, fd) |
| |
| def AddDuplicateFileAction(self, fd: "int", dup_fd: "int") -> "bool": |
| r"""AddDuplicateFileAction(SBLaunchInfo self, int fd, int dup_fd) -> bool""" |
| return _lldb.SBLaunchInfo_AddDuplicateFileAction(self, fd, dup_fd) |
| |
| def AddOpenFileAction(self, fd: "int", path: "char const *", read: "bool", write: "bool") -> "bool": |
| r"""AddOpenFileAction(SBLaunchInfo self, int fd, char const * path, bool read, bool write) -> bool""" |
| return _lldb.SBLaunchInfo_AddOpenFileAction(self, fd, path, read, write) |
| |
| def AddSuppressFileAction(self, fd: "int", read: "bool", write: "bool") -> "bool": |
| r"""AddSuppressFileAction(SBLaunchInfo self, int fd, bool read, bool write) -> bool""" |
| return _lldb.SBLaunchInfo_AddSuppressFileAction(self, fd, read, write) |
| |
| def SetLaunchEventData(self, data: "char const *") -> "void": |
| r"""SetLaunchEventData(SBLaunchInfo self, char const * data)""" |
| return _lldb.SBLaunchInfo_SetLaunchEventData(self, data) |
| |
| def GetLaunchEventData(self) -> "char const *": |
| r"""GetLaunchEventData(SBLaunchInfo self) -> char const *""" |
| return _lldb.SBLaunchInfo_GetLaunchEventData(self) |
| |
| def GetDetachOnError(self) -> "bool": |
| r"""GetDetachOnError(SBLaunchInfo self) -> bool""" |
| return _lldb.SBLaunchInfo_GetDetachOnError(self) |
| |
| def SetDetachOnError(self, enable: "bool") -> "void": |
| r"""SetDetachOnError(SBLaunchInfo self, bool enable)""" |
| return _lldb.SBLaunchInfo_SetDetachOnError(self, enable) |
| |
| def GetScriptedProcessClassName(self) -> "char const *": |
| r"""GetScriptedProcessClassName(SBLaunchInfo self) -> char const *""" |
| return _lldb.SBLaunchInfo_GetScriptedProcessClassName(self) |
| |
| def SetScriptedProcessClassName(self, class_name: "char const *") -> "void": |
| r"""SetScriptedProcessClassName(SBLaunchInfo self, char const * class_name)""" |
| return _lldb.SBLaunchInfo_SetScriptedProcessClassName(self, class_name) |
| |
| def GetScriptedProcessDictionary(self) -> "lldb::SBStructuredData": |
| r"""GetScriptedProcessDictionary(SBLaunchInfo self) -> SBStructuredData""" |
| return _lldb.SBLaunchInfo_GetScriptedProcessDictionary(self) |
| |
| def SetScriptedProcessDictionary(self, dict: "SBStructuredData") -> "void": |
| r"""SetScriptedProcessDictionary(SBLaunchInfo self, SBStructuredData dict)""" |
| return _lldb.SBLaunchInfo_SetScriptedProcessDictionary(self, dict) |
| __swig_destroy__ = _lldb.delete_SBLaunchInfo |
| |
| # Register SBLaunchInfo in _lldb: |
| _lldb.SBLaunchInfo_swigregister(SBLaunchInfo) |
| |
| class SBLineEntry(object): |
| r""" |
| Specifies an association with a contiguous range of instructions and |
| a source file location. |
| |
| :py:class:`SBCompileUnit` contains SBLineEntry(s). For example, :: |
| |
| 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 :py:class:`SBCompileUnit` . |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBLineEntry self) -> SBLineEntry |
| __init__(SBLineEntry self, SBLineEntry rhs) -> SBLineEntry |
| """ |
| _lldb.SBLineEntry_swiginit(self, _lldb.new_SBLineEntry(*args)) |
| __swig_destroy__ = _lldb.delete_SBLineEntry |
| |
| def GetStartAddress(self) -> "lldb::SBAddress": |
| r"""GetStartAddress(SBLineEntry self) -> SBAddress""" |
| return _lldb.SBLineEntry_GetStartAddress(self) |
| |
| def GetEndAddress(self) -> "lldb::SBAddress": |
| r"""GetEndAddress(SBLineEntry self) -> SBAddress""" |
| return _lldb.SBLineEntry_GetEndAddress(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBLineEntry self) -> bool""" |
| return _lldb.SBLineEntry_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBLineEntry___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetFileSpec(SBLineEntry self) -> SBFileSpec""" |
| return _lldb.SBLineEntry_GetFileSpec(self) |
| |
| def GetLine(self) -> "uint32_t": |
| r"""GetLine(SBLineEntry self) -> uint32_t""" |
| return _lldb.SBLineEntry_GetLine(self) |
| |
| def GetColumn(self) -> "uint32_t": |
| r"""GetColumn(SBLineEntry self) -> uint32_t""" |
| return _lldb.SBLineEntry_GetColumn(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBLineEntry self, SBStream description) -> bool""" |
| return _lldb.SBLineEntry_GetDescription(self, description) |
| |
| def SetFileSpec(self, filespec: "SBFileSpec") -> "void": |
| r"""SetFileSpec(SBLineEntry self, SBFileSpec filespec)""" |
| return _lldb.SBLineEntry_SetFileSpec(self, filespec) |
| |
| def SetLine(self, line: "uint32_t") -> "void": |
| r"""SetLine(SBLineEntry self, uint32_t line)""" |
| return _lldb.SBLineEntry_SetLine(self, line) |
| |
| def SetColumn(self, column: "uint32_t") -> "void": |
| r"""SetColumn(SBLineEntry self, uint32_t column)""" |
| return _lldb.SBLineEntry_SetColumn(self, column) |
| |
| def __eq__(self, rhs: "SBLineEntry") -> "bool": |
| r"""__eq__(SBLineEntry self, SBLineEntry rhs) -> bool""" |
| return _lldb.SBLineEntry___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBLineEntry") -> "bool": |
| r"""__ne__(SBLineEntry self, SBLineEntry rhs) -> bool""" |
| return _lldb.SBLineEntry___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBLineEntry self) -> std::string""" |
| return _lldb.SBLineEntry___str__(self) |
| |
| file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''') |
| line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''') |
| column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''') |
| addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this line entry.''') |
| end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this line entry.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBLineEntry in _lldb: |
| _lldb.SBLineEntry_swigregister(SBLineEntry) |
| |
| class SBListener(object): |
| r""" |
| API clients can register its own listener to debugger events. |
| |
| See also :py:class:`SBEvent` for example usage of creating and adding a listener. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBListener self) -> SBListener |
| __init__(SBListener self, char const * name) -> SBListener |
| __init__(SBListener self, SBListener rhs) -> SBListener |
| """ |
| _lldb.SBListener_swiginit(self, _lldb.new_SBListener(*args)) |
| __swig_destroy__ = _lldb.delete_SBListener |
| |
| def AddEvent(self, event: "SBEvent") -> "void": |
| r"""AddEvent(SBListener self, SBEvent event)""" |
| return _lldb.SBListener_AddEvent(self, event) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBListener self)""" |
| return _lldb.SBListener_Clear(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBListener self) -> bool""" |
| return _lldb.SBListener_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBListener___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def StartListeningForEventClass(self, debugger: "SBDebugger", broadcaster_class: "char const *", event_mask: "uint32_t") -> "uint32_t": |
| r"""StartListeningForEventClass(SBListener self, SBDebugger debugger, char const * broadcaster_class, uint32_t event_mask) -> uint32_t""" |
| return _lldb.SBListener_StartListeningForEventClass(self, debugger, broadcaster_class, event_mask) |
| |
| def StopListeningForEventClass(self, debugger: "SBDebugger", broadcaster_class: "char const *", event_mask: "uint32_t") -> "uint32_t": |
| r"""StopListeningForEventClass(SBListener self, SBDebugger debugger, char const * broadcaster_class, uint32_t event_mask) -> uint32_t""" |
| return _lldb.SBListener_StopListeningForEventClass(self, debugger, broadcaster_class, event_mask) |
| |
| def StartListeningForEvents(self, broadcaster: "SBBroadcaster", event_mask: "uint32_t") -> "uint32_t": |
| r"""StartListeningForEvents(SBListener self, SBBroadcaster broadcaster, uint32_t event_mask) -> uint32_t""" |
| return _lldb.SBListener_StartListeningForEvents(self, broadcaster, event_mask) |
| |
| def StopListeningForEvents(self, broadcaster: "SBBroadcaster", event_mask: "uint32_t") -> "bool": |
| r"""StopListeningForEvents(SBListener self, SBBroadcaster broadcaster, uint32_t event_mask) -> bool""" |
| return _lldb.SBListener_StopListeningForEvents(self, broadcaster, event_mask) |
| |
| def WaitForEvent(self, num_seconds: "uint32_t", event: "SBEvent") -> "bool": |
| r"""WaitForEvent(SBListener self, uint32_t num_seconds, SBEvent event) -> bool""" |
| return _lldb.SBListener_WaitForEvent(self, num_seconds, event) |
| |
| def WaitForEventForBroadcaster(self, num_seconds: "uint32_t", broadcaster: "SBBroadcaster", sb_event: "SBEvent") -> "bool": |
| r"""WaitForEventForBroadcaster(SBListener self, uint32_t num_seconds, SBBroadcaster broadcaster, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_WaitForEventForBroadcaster(self, num_seconds, broadcaster, sb_event) |
| |
| def WaitForEventForBroadcasterWithType(self, num_seconds: "uint32_t", broadcaster: "SBBroadcaster", event_type_mask: "uint32_t", sb_event: "SBEvent") -> "bool": |
| r"""WaitForEventForBroadcasterWithType(SBListener self, uint32_t num_seconds, SBBroadcaster broadcaster, uint32_t event_type_mask, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_WaitForEventForBroadcasterWithType(self, num_seconds, broadcaster, event_type_mask, sb_event) |
| |
| def PeekAtNextEvent(self, sb_event: "SBEvent") -> "bool": |
| r"""PeekAtNextEvent(SBListener self, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_PeekAtNextEvent(self, sb_event) |
| |
| def PeekAtNextEventForBroadcaster(self, broadcaster: "SBBroadcaster", sb_event: "SBEvent") -> "bool": |
| r"""PeekAtNextEventForBroadcaster(SBListener self, SBBroadcaster broadcaster, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_PeekAtNextEventForBroadcaster(self, broadcaster, sb_event) |
| |
| def PeekAtNextEventForBroadcasterWithType(self, broadcaster: "SBBroadcaster", event_type_mask: "uint32_t", sb_event: "SBEvent") -> "bool": |
| r"""PeekAtNextEventForBroadcasterWithType(SBListener self, SBBroadcaster broadcaster, uint32_t event_type_mask, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_PeekAtNextEventForBroadcasterWithType(self, broadcaster, event_type_mask, sb_event) |
| |
| def GetNextEvent(self, sb_event: "SBEvent") -> "bool": |
| r"""GetNextEvent(SBListener self, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_GetNextEvent(self, sb_event) |
| |
| def GetNextEventForBroadcaster(self, broadcaster: "SBBroadcaster", sb_event: "SBEvent") -> "bool": |
| r"""GetNextEventForBroadcaster(SBListener self, SBBroadcaster broadcaster, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_GetNextEventForBroadcaster(self, broadcaster, sb_event) |
| |
| def GetNextEventForBroadcasterWithType(self, broadcaster: "SBBroadcaster", event_type_mask: "uint32_t", sb_event: "SBEvent") -> "bool": |
| r"""GetNextEventForBroadcasterWithType(SBListener self, SBBroadcaster broadcaster, uint32_t event_type_mask, SBEvent sb_event) -> bool""" |
| return _lldb.SBListener_GetNextEventForBroadcasterWithType(self, broadcaster, event_type_mask, sb_event) |
| |
| def HandleBroadcastEvent(self, event: "SBEvent") -> "bool": |
| r"""HandleBroadcastEvent(SBListener self, SBEvent event) -> bool""" |
| return _lldb.SBListener_HandleBroadcastEvent(self, event) |
| |
| # Register SBListener in _lldb: |
| _lldb.SBListener_swigregister(SBListener) |
| |
| class SBMemoryRegionInfo(object): |
| r"""API clients can get information about memory regions in processes.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBMemoryRegionInfo self) -> SBMemoryRegionInfo |
| __init__(SBMemoryRegionInfo self, SBMemoryRegionInfo rhs) -> SBMemoryRegionInfo |
| __init__(SBMemoryRegionInfo self, char const * name, lldb::addr_t begin, lldb::addr_t end, uint32_t permissions, bool mapped, bool stack_memory) -> SBMemoryRegionInfo |
| """ |
| _lldb.SBMemoryRegionInfo_swiginit(self, _lldb.new_SBMemoryRegionInfo(*args)) |
| __swig_destroy__ = _lldb.delete_SBMemoryRegionInfo |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBMemoryRegionInfo self)""" |
| return _lldb.SBMemoryRegionInfo_Clear(self) |
| |
| def GetRegionBase(self) -> "lldb::addr_t": |
| r"""GetRegionBase(SBMemoryRegionInfo self) -> lldb::addr_t""" |
| return _lldb.SBMemoryRegionInfo_GetRegionBase(self) |
| |
| def GetRegionEnd(self) -> "lldb::addr_t": |
| r"""GetRegionEnd(SBMemoryRegionInfo self) -> lldb::addr_t""" |
| return _lldb.SBMemoryRegionInfo_GetRegionEnd(self) |
| |
| def IsReadable(self) -> "bool": |
| r"""IsReadable(SBMemoryRegionInfo self) -> bool""" |
| return _lldb.SBMemoryRegionInfo_IsReadable(self) |
| |
| def IsWritable(self) -> "bool": |
| r"""IsWritable(SBMemoryRegionInfo self) -> bool""" |
| return _lldb.SBMemoryRegionInfo_IsWritable(self) |
| |
| def IsExecutable(self) -> "bool": |
| r"""IsExecutable(SBMemoryRegionInfo self) -> bool""" |
| return _lldb.SBMemoryRegionInfo_IsExecutable(self) |
| |
| def IsMapped(self) -> "bool": |
| r"""IsMapped(SBMemoryRegionInfo self) -> bool""" |
| return _lldb.SBMemoryRegionInfo_IsMapped(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBMemoryRegionInfo self) -> char const *""" |
| return _lldb.SBMemoryRegionInfo_GetName(self) |
| |
| def HasDirtyMemoryPageList(self) -> "bool": |
| r""" |
| |
| GetRegionEnd(SBMemoryRegionInfo self) -> lldb::addr_t |
| Returns whether this memory region has a list of modified (dirty) |
| pages available or not. When calling GetNumDirtyPages(), you will |
| have 0 returned for both "dirty page list is not known" and |
| "empty dirty page list" (that is, no modified pages in this |
| memory region). You must use this method to disambiguate. |
| """ |
| return _lldb.SBMemoryRegionInfo_HasDirtyMemoryPageList(self) |
| |
| def GetNumDirtyPages(self) -> "uint32_t": |
| r""" |
| |
| GetNumDirtyPages(SBMemoryRegionInfo self) -> uint32_t |
| Return the number of dirty (modified) memory pages in this |
| memory region, if available. You must use the |
| SBMemoryRegionInfo::HasDirtyMemoryPageList() method to |
| determine if a dirty memory list is available; it will depend |
| on the target system can provide this information. |
| """ |
| return _lldb.SBMemoryRegionInfo_GetNumDirtyPages(self) |
| |
| def GetDirtyPageAddressAtIndex(self, idx: "uint32_t") -> "lldb::addr_t": |
| r""" |
| |
| GetDirtyPageAddressAtIndex(SBMemoryRegionInfo self, uint32_t idx) -> lldb::addr_t |
| Return the address of a modified, or dirty, page of memory. |
| If the provided index is out of range, or this memory region |
| does not have dirty page information, LLDB_INVALID_ADDRESS |
| is returned. |
| """ |
| return _lldb.SBMemoryRegionInfo_GetDirtyPageAddressAtIndex(self, idx) |
| |
| def GetPageSize(self) -> "int": |
| r""" |
| |
| GetPageSize(SBMemoryRegionInfo self) -> int |
| Return the size of pages in this memory region. 0 will be returned |
| if this information was unavailable. |
| """ |
| return _lldb.SBMemoryRegionInfo_GetPageSize(self) |
| |
| def __eq__(self, rhs: "SBMemoryRegionInfo") -> "bool": |
| r"""__eq__(SBMemoryRegionInfo self, SBMemoryRegionInfo rhs) -> bool""" |
| return _lldb.SBMemoryRegionInfo___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBMemoryRegionInfo") -> "bool": |
| r"""__ne__(SBMemoryRegionInfo self, SBMemoryRegionInfo rhs) -> bool""" |
| return _lldb.SBMemoryRegionInfo___ne__(self, rhs) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBMemoryRegionInfo self, SBStream description) -> bool""" |
| return _lldb.SBMemoryRegionInfo_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBMemoryRegionInfo self) -> std::string""" |
| return _lldb.SBMemoryRegionInfo___str__(self) |
| |
| # Register SBMemoryRegionInfo in _lldb: |
| _lldb.SBMemoryRegionInfo_swigregister(SBMemoryRegionInfo) |
| |
| class SBMemoryRegionInfoList(object): |
| r"""Represents a list of :py:class:`SBMemoryRegionInfo`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBMemoryRegionInfoList self) -> SBMemoryRegionInfoList |
| __init__(SBMemoryRegionInfoList self, SBMemoryRegionInfoList rhs) -> SBMemoryRegionInfoList |
| """ |
| _lldb.SBMemoryRegionInfoList_swiginit(self, _lldb.new_SBMemoryRegionInfoList(*args)) |
| __swig_destroy__ = _lldb.delete_SBMemoryRegionInfoList |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBMemoryRegionInfoList self) -> uint32_t""" |
| return _lldb.SBMemoryRegionInfoList_GetSize(self) |
| |
| def GetMemoryRegionContainingAddress(self, addr: "lldb::addr_t", region_info: "SBMemoryRegionInfo") -> "bool": |
| r"""GetMemoryRegionContainingAddress(SBMemoryRegionInfoList self, lldb::addr_t addr, SBMemoryRegionInfo region_info) -> bool""" |
| return _lldb.SBMemoryRegionInfoList_GetMemoryRegionContainingAddress(self, addr, region_info) |
| |
| def GetMemoryRegionAtIndex(self, idx: "uint32_t", region_info: "SBMemoryRegionInfo") -> "bool": |
| r"""GetMemoryRegionAtIndex(SBMemoryRegionInfoList self, uint32_t idx, SBMemoryRegionInfo region_info) -> bool""" |
| return _lldb.SBMemoryRegionInfoList_GetMemoryRegionAtIndex(self, idx, region_info) |
| |
| def Append(self, *args) -> "void": |
| r""" |
| Append(SBMemoryRegionInfoList self, SBMemoryRegionInfo region) |
| Append(SBMemoryRegionInfoList self, SBMemoryRegionInfoList region_list) |
| """ |
| return _lldb.SBMemoryRegionInfoList_Append(self, *args) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBMemoryRegionInfoList self)""" |
| return _lldb.SBMemoryRegionInfoList_Clear(self) |
| |
| # Register SBMemoryRegionInfoList in _lldb: |
| _lldb.SBMemoryRegionInfoList_swigregister(SBMemoryRegionInfoList) |
| |
| |
| # ================================== |
| # Helper function for SBModule class |
| # ================================== |
| def in_range(symbol, section): |
| """Test whether a symbol is within the range of a section.""" |
| symSA = symbol.GetStartAddress().GetFileAddress() |
| symEA = symbol.GetEndAddress().GetFileAddress() |
| secSA = section.GetFileAddress() |
| secEA = secSA + section.GetByteSize() |
| |
| if symEA != LLDB_INVALID_ADDRESS: |
| if secSA <= symSA and symEA <= secEA: |
| return True |
| else: |
| return False |
| else: |
| if secSA <= symSA and symSA < secEA: |
| return True |
| else: |
| return False |
| |
| class SBModule(object): |
| r""" |
| Represents an executable image and its associated object and symbol files. |
| |
| The module is designed to be able to select a single slice of an |
| executable image as it would appear on disk and during program |
| execution. |
| |
| You can retrieve SBModule from :py:class:`SBSymbolContext` , which in turn is available |
| from SBFrame. |
| |
| SBModule supports symbol iteration, for example, :: |
| |
| for symbol in module: |
| name = symbol.GetName() |
| saddr = symbol.GetStartAddress() |
| eaddr = symbol.GetEndAddress() |
| |
| and rich comparison methods which allow the API program to use, :: |
| |
| if thisModule == thatModule: |
| print('This module is the same as that module') |
| |
| to test module equality. A module also contains object file sections, namely |
| :py:class:`SBSection` . SBModule supports section iteration through section_iter(), for |
| example, :: |
| |
| print('Number of sections: %d' % module.GetNumSections()) |
| for sec in module.section_iter(): |
| print(sec) |
| |
| And to iterate the symbols within a SBSection, use symbol_in_section_iter(), :: |
| |
| # Iterates the text section and prints each symbols within each sub-section. |
| for subsec in text_sec: |
| print(INDENT + repr(subsec)) |
| for sym in exe_module.symbol_in_section_iter(subsec): |
| print(INDENT2 + repr(sym)) |
| print(INDENT2 + 'symbol type: %s' % symbol_type_to_str(sym.GetType())) |
| |
| produces this following output: :: |
| |
| [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text |
| id = {0x00000004}, name = 'mask_access(MaskAction, unsigned int)', range = [0x00000001000017c0-0x0000000100001870) |
| symbol type: code |
| id = {0x00000008}, name = 'thread_func(void*)', range = [0x0000000100001870-0x00000001000019b0) |
| symbol type: code |
| id = {0x0000000c}, name = 'main', range = [0x00000001000019b0-0x0000000100001d5c) |
| symbol type: code |
| id = {0x00000023}, name = 'start', address = 0x0000000100001780 |
| symbol type: code |
| [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs |
| id = {0x00000024}, name = '__stack_chk_fail', range = [0x0000000100001d5c-0x0000000100001d62) |
| symbol type: trampoline |
| id = {0x00000028}, name = 'exit', range = [0x0000000100001d62-0x0000000100001d68) |
| symbol type: trampoline |
| id = {0x00000029}, name = 'fflush', range = [0x0000000100001d68-0x0000000100001d6e) |
| symbol type: trampoline |
| id = {0x0000002a}, name = 'fgets', range = [0x0000000100001d6e-0x0000000100001d74) |
| symbol type: trampoline |
| id = {0x0000002b}, name = 'printf', range = [0x0000000100001d74-0x0000000100001d7a) |
| symbol type: trampoline |
| id = {0x0000002c}, name = 'pthread_create', range = [0x0000000100001d7a-0x0000000100001d80) |
| symbol type: trampoline |
| id = {0x0000002d}, name = 'pthread_join', range = [0x0000000100001d80-0x0000000100001d86) |
| symbol type: trampoline |
| id = {0x0000002e}, name = 'pthread_mutex_lock', range = [0x0000000100001d86-0x0000000100001d8c) |
| symbol type: trampoline |
| id = {0x0000002f}, name = 'pthread_mutex_unlock', range = [0x0000000100001d8c-0x0000000100001d92) |
| symbol type: trampoline |
| id = {0x00000030}, name = 'rand', range = [0x0000000100001d92-0x0000000100001d98) |
| symbol type: trampoline |
| id = {0x00000031}, name = 'strtoul', range = [0x0000000100001d98-0x0000000100001d9e) |
| symbol type: trampoline |
| id = {0x00000032}, name = 'usleep', range = [0x0000000100001d9e-0x0000000100001da4) |
| symbol type: trampoline |
| [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper |
| [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring |
| [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info |
| [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBModule self) -> SBModule |
| __init__(SBModule self, SBModule rhs) -> SBModule |
| __init__(SBModule self, SBModuleSpec module_spec) -> SBModule |
| __init__(SBModule self, SBProcess process, lldb::addr_t header_addr) -> SBModule |
| """ |
| _lldb.SBModule_swiginit(self, _lldb.new_SBModule(*args)) |
| __swig_destroy__ = _lldb.delete_SBModule |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBModule self) -> bool""" |
| return _lldb.SBModule_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBModule___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBModule self)""" |
| return _lldb.SBModule_Clear(self) |
| |
| def IsFileBacked(self) -> "bool": |
| r""" |
| IsFileBacked(SBModule self) -> bool |
| Check if the module is file backed. |
| @return |
| True, if the module is backed by an object file on disk. |
| False, if the module is backed by an object file in memory. |
| """ |
| return _lldb.SBModule_IsFileBacked(self) |
| |
| def GetFileSpec(self) -> "lldb::SBFileSpec": |
| r""" |
| GetFileSpec(SBModule self) -> SBFileSpec |
| |
| Get const accessor for the module file specification. |
| |
| This function returns the file for the module on the host system |
| that is running LLDB. This can differ from the path on the |
| platform since we might be doing remote debugging. |
| |
| @return |
| A const reference to the file specification object. |
| """ |
| return _lldb.SBModule_GetFileSpec(self) |
| |
| def GetPlatformFileSpec(self) -> "lldb::SBFileSpec": |
| r""" |
| GetPlatformFileSpec(SBModule self) -> SBFileSpec |
| |
| Get accessor for the module platform file specification. |
| |
| Platform file refers to the path of the module as it is known on |
| the remote system on which it is being debugged. For local |
| debugging this is always the same as Module::GetFileSpec(). But |
| remote debugging might mention a file '/usr/lib/liba.dylib' |
| which might be locally downloaded and cached. In this case the |
| platform file could be something like: |
| '/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib' |
| The file could also be cached in a local developer kit directory. |
| |
| @return |
| A const reference to the file specification object. |
| """ |
| return _lldb.SBModule_GetPlatformFileSpec(self) |
| |
| def SetPlatformFileSpec(self, platform_file: "SBFileSpec") -> "bool": |
| r"""SetPlatformFileSpec(SBModule self, SBFileSpec platform_file) -> bool""" |
| return _lldb.SBModule_SetPlatformFileSpec(self, platform_file) |
| |
| def GetRemoteInstallFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetRemoteInstallFileSpec(SBModule self) -> SBFileSpec""" |
| return _lldb.SBModule_GetRemoteInstallFileSpec(self) |
| |
| def SetRemoteInstallFileSpec(self, file: "SBFileSpec") -> "bool": |
| r"""SetRemoteInstallFileSpec(SBModule self, SBFileSpec file) -> bool""" |
| return _lldb.SBModule_SetRemoteInstallFileSpec(self, file) |
| |
| def GetUUIDString(self) -> "char const *": |
| r""" |
| GetUUIDString(SBModule self) -> char const * |
| Returns the UUID of the module as a Python string. |
| """ |
| return _lldb.SBModule_GetUUIDString(self) |
| |
| def __eq__(self, rhs: "SBModule") -> "bool": |
| r"""__eq__(SBModule self, SBModule rhs) -> bool""" |
| return _lldb.SBModule___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBModule") -> "bool": |
| r"""__ne__(SBModule self, SBModule rhs) -> bool""" |
| return _lldb.SBModule___ne__(self, rhs) |
| |
| def FindSection(self, sect_name: "char const *") -> "lldb::SBSection": |
| r"""FindSection(SBModule self, char const * sect_name) -> SBSection""" |
| return _lldb.SBModule_FindSection(self, sect_name) |
| |
| def ResolveFileAddress(self, vm_addr: "lldb::addr_t") -> "lldb::SBAddress": |
| r"""ResolveFileAddress(SBModule self, lldb::addr_t vm_addr) -> SBAddress""" |
| return _lldb.SBModule_ResolveFileAddress(self, vm_addr) |
| |
| def ResolveSymbolContextForAddress(self, addr: "SBAddress", resolve_scope: "uint32_t") -> "lldb::SBSymbolContext": |
| r"""ResolveSymbolContextForAddress(SBModule self, SBAddress addr, uint32_t resolve_scope) -> SBSymbolContext""" |
| return _lldb.SBModule_ResolveSymbolContextForAddress(self, addr, resolve_scope) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBModule self, SBStream description) -> bool""" |
| return _lldb.SBModule_GetDescription(self, description) |
| |
| def GetNumCompileUnits(self) -> "uint32_t": |
| r"""GetNumCompileUnits(SBModule self) -> uint32_t""" |
| return _lldb.SBModule_GetNumCompileUnits(self) |
| |
| def GetCompileUnitAtIndex(self, arg2: "uint32_t") -> "lldb::SBCompileUnit": |
| r"""GetCompileUnitAtIndex(SBModule self, uint32_t arg2) -> SBCompileUnit""" |
| return _lldb.SBModule_GetCompileUnitAtIndex(self, arg2) |
| |
| def FindCompileUnits(self, sb_file_spec: "SBFileSpec") -> "lldb::SBSymbolContextList": |
| r""" |
| FindCompileUnits(SBModule self, SBFileSpec sb_file_spec) -> SBSymbolContextList |
| |
| Find compile units related to this module and passed source |
| file. |
| |
| @param[in] sb_file_spec |
| A :py:class:`SBFileSpec` object that contains source file |
| specification. |
| |
| @return |
| A :py:class:`SBSymbolContextList` that gets filled in with all of |
| the symbol contexts for all the matches. |
| """ |
| return _lldb.SBModule_FindCompileUnits(self, sb_file_spec) |
| |
| def GetNumSymbols(self) -> "size_t": |
| r"""GetNumSymbols(SBModule self) -> size_t""" |
| return _lldb.SBModule_GetNumSymbols(self) |
| |
| def GetSymbolAtIndex(self, idx: "size_t") -> "lldb::SBSymbol": |
| r"""GetSymbolAtIndex(SBModule self, size_t idx) -> SBSymbol""" |
| return _lldb.SBModule_GetSymbolAtIndex(self, idx) |
| |
| def FindSymbol(self, *args) -> "lldb::SBSymbol": |
| r"""FindSymbol(SBModule self, char const * name, lldb::SymbolType type=eSymbolTypeAny) -> SBSymbol""" |
| return _lldb.SBModule_FindSymbol(self, *args) |
| |
| def FindSymbols(self, *args) -> "lldb::SBSymbolContextList": |
| r"""FindSymbols(SBModule self, char const * name, lldb::SymbolType type=eSymbolTypeAny) -> SBSymbolContextList""" |
| return _lldb.SBModule_FindSymbols(self, *args) |
| |
| def GetNumSections(self) -> "size_t": |
| r"""GetNumSections(SBModule self) -> size_t""" |
| return _lldb.SBModule_GetNumSections(self) |
| |
| def GetSectionAtIndex(self, idx: "size_t") -> "lldb::SBSection": |
| r"""GetSectionAtIndex(SBModule self, size_t idx) -> SBSection""" |
| return _lldb.SBModule_GetSectionAtIndex(self, idx) |
| |
| def FindFunctions(self, *args) -> "lldb::SBSymbolContextList": |
| r""" |
| FindFunctions(SBModule self, char const * name, uint32_t name_type_mask=eFunctionNameTypeAny) -> SBSymbolContextList |
| |
| Find functions by name. |
| |
| @param[in] name |
| The name of the function we are looking for. |
| |
| @param[in] name_type_mask |
| A logical OR of one or more FunctionNameType enum bits that |
| indicate what kind of names should be used when doing the |
| lookup. Bits include fully qualified names, base names, |
| C++ methods, or ObjC selectors. |
| See FunctionNameType for more details. |
| |
| @return |
| A symbol context list that gets filled in with all of the |
| matches. |
| """ |
| return _lldb.SBModule_FindFunctions(self, *args) |
| |
| def FindFirstType(self, name: "char const *") -> "lldb::SBType": |
| r"""FindFirstType(SBModule self, char const * name) -> SBType""" |
| return _lldb.SBModule_FindFirstType(self, name) |
| |
| def FindTypes(self, type: "char const *") -> "lldb::SBTypeList": |
| r"""FindTypes(SBModule self, char const * type) -> SBTypeList""" |
| return _lldb.SBModule_FindTypes(self, type) |
| |
| def GetTypeByID(self, uid: "lldb::user_id_t") -> "lldb::SBType": |
| r"""GetTypeByID(SBModule self, lldb::user_id_t uid) -> SBType""" |
| return _lldb.SBModule_GetTypeByID(self, uid) |
| |
| def GetBasicType(self, type: "lldb::BasicType") -> "lldb::SBType": |
| r"""GetBasicType(SBModule self, lldb::BasicType type) -> SBType""" |
| return _lldb.SBModule_GetBasicType(self, type) |
| |
| def GetTypes(self, *args) -> "lldb::SBTypeList": |
| r""" |
| GetTypes(SBModule self, uint32_t type_mask=eTypeClassAny) -> SBTypeList |
| |
| Get all types matching type_mask from debug info in this |
| module. |
| |
| @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 module. |
| |
| @return |
| A list of types in this module that match type_mask |
| """ |
| return _lldb.SBModule_GetTypes(self, *args) |
| |
| def FindGlobalVariables(self, target: "SBTarget", name: "char const *", max_matches: "uint32_t") -> "lldb::SBValueList": |
| r""" |
| FindGlobalVariables(SBModule self, SBTarget target, char const * name, uint32_t max_matches) -> SBValueList |
| |
| Find global and static variables by name. |
| |
| @param[in] target |
| A valid SBTarget instance representing the debuggee. |
| |
| @param[in] name |
| The name of the global or static variable we are looking |
| for. |
| |
| @param[in] max_matches |
| Allow the number of matches to be limited to max_matches. |
| |
| @return |
| A list of matched variables in an SBValueList. |
| """ |
| return _lldb.SBModule_FindGlobalVariables(self, target, name, max_matches) |
| |
| def FindFirstGlobalVariable(self, target: "SBTarget", name: "char const *") -> "lldb::SBValue": |
| r""" |
| FindFirstGlobalVariable(SBModule self, SBTarget target, char const * name) -> SBValue |
| |
| Find the first global (or static) variable by name. |
| |
| @param[in] target |
| A valid SBTarget instance representing the debuggee. |
| |
| @param[in] name |
| The name of the global or static variable we are looking |
| for. |
| |
| @return |
| An SBValue that gets filled in with the found variable (if any). |
| """ |
| return _lldb.SBModule_FindFirstGlobalVariable(self, target, name) |
| |
| def GetByteOrder(self) -> "lldb::ByteOrder": |
| r"""GetByteOrder(SBModule self) -> lldb::ByteOrder""" |
| return _lldb.SBModule_GetByteOrder(self) |
| |
| def GetAddressByteSize(self) -> "uint32_t": |
| r"""GetAddressByteSize(SBModule self) -> uint32_t""" |
| return _lldb.SBModule_GetAddressByteSize(self) |
| |
| def GetTriple(self) -> "char const *": |
| r"""GetTriple(SBModule self) -> char const *""" |
| return _lldb.SBModule_GetTriple(self) |
| |
| def GetVersion(self) -> "uint32_t": |
| r"""GetVersion(SBModule self) -> uint32_t""" |
| return _lldb.SBModule_GetVersion(self) |
| |
| def GetSymbolFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetSymbolFileSpec(SBModule self) -> SBFileSpec""" |
| return _lldb.SBModule_GetSymbolFileSpec(self) |
| |
| def GetObjectFileHeaderAddress(self) -> "lldb::SBAddress": |
| r"""GetObjectFileHeaderAddress(SBModule self) -> SBAddress""" |
| return _lldb.SBModule_GetObjectFileHeaderAddress(self) |
| |
| def GetObjectFileEntryPointAddress(self) -> "lldb::SBAddress": |
| r"""GetObjectFileEntryPointAddress(SBModule self) -> SBAddress""" |
| return _lldb.SBModule_GetObjectFileEntryPointAddress(self) |
| |
| @staticmethod |
| def GetNumberAllocatedModules() -> "uint32_t": |
| r""" |
| GetNumberAllocatedModules() -> uint32_t |
| |
| Returns the number of modules in the module cache. This is an |
| implementation detail exposed for testing and should not be relied upon. |
| |
| @return |
| The number of modules in the module cache. |
| """ |
| return _lldb.SBModule_GetNumberAllocatedModules() |
| |
| @staticmethod |
| def GarbageCollectAllocatedModules() -> "void": |
| r""" |
| GarbageCollectAllocatedModules() |
| |
| Removes all modules which are no longer needed by any part of LLDB from |
| the module cache. |
| |
| This is an implementation detail exposed for testing and should not be |
| relied upon. Use SBDebugger::MemoryPressureDetected instead to reduce |
| LLDB's memory consumption during execution. |
| |
| """ |
| return _lldb.SBModule_GarbageCollectAllocatedModules() |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBModule self) -> std::string""" |
| return _lldb.SBModule___str__(self) |
| |
| def __len__(self): |
| '''Return the number of symbols in a lldb.SBModule object.''' |
| return self.GetNumSymbols() |
| |
| def __iter__(self): |
| '''Iterate over all symbols in a lldb.SBModule object.''' |
| return lldb_iter(self, 'GetNumSymbols', 'GetSymbolAtIndex') |
| |
| def section_iter(self): |
| '''Iterate over all sections in a lldb.SBModule object.''' |
| return lldb_iter(self, 'GetNumSections', 'GetSectionAtIndex') |
| |
| def compile_unit_iter(self): |
| '''Iterate over all compile units in a lldb.SBModule object.''' |
| return lldb_iter(self, 'GetNumCompileUnits', 'GetCompileUnitAtIndex') |
| |
| def symbol_in_section_iter(self, section): |
| '''Given a module and its contained section, returns an iterator on the |
| symbols within the section.''' |
| for sym in self: |
| if in_range(sym, section): |
| yield sym |
| |
| class symbols_access(object): |
| re_compile_type = type(re.compile('.')) |
| '''A helper object that will lazily hand out lldb.SBSymbol objects for a module when supplied an index, name, or regular expression.''' |
| def __init__(self, sbmodule): |
| self.sbmodule = sbmodule |
| |
| def __len__(self): |
| if self.sbmodule: |
| return int(self.sbmodule.GetNumSymbols()) |
| return 0 |
| |
| def __getitem__(self, key): |
| count = len(self) |
| if type(key) is int: |
| if key < count: |
| return self.sbmodule.GetSymbolAtIndex(key) |
| elif type(key) is str: |
| matches = [] |
| sc_list = self.sbmodule.FindSymbols(key) |
| for sc in sc_list: |
| symbol = sc.symbol |
| if symbol: |
| matches.append(symbol) |
| return matches |
| elif isinstance(key, self.re_compile_type): |
| matches = [] |
| for idx in range(count): |
| symbol = self.sbmodule.GetSymbolAtIndex(idx) |
| added = False |
| name = symbol.name |
| if name: |
| re_match = key.search(name) |
| if re_match: |
| matches.append(symbol) |
| added = True |
| if not added: |
| mangled = symbol.mangled |
| if mangled: |
| re_match = key.search(mangled) |
| if re_match: |
| matches.append(symbol) |
| return matches |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| def get_symbols_access_object(self): |
| '''An accessor function that returns a symbols_access() object which allows lazy symbol access from a lldb.SBModule object.''' |
| return self.symbols_access (self) |
| |
| def get_compile_units_access_object (self): |
| '''An accessor function that returns a compile_units_access() object which allows lazy compile unit access from a lldb.SBModule object.''' |
| return self.compile_units_access (self) |
| |
| def get_symbols_array(self): |
| '''An accessor function that returns a list() that contains all symbols in a lldb.SBModule object.''' |
| symbols = [] |
| for idx in range(self.num_symbols): |
| symbols.append(self.GetSymbolAtIndex(idx)) |
| return symbols |
| |
| class sections_access(object): |
| re_compile_type = type(re.compile('.')) |
| '''A helper object that will lazily hand out lldb.SBSection objects for a module when supplied an index, name, or regular expression.''' |
| def __init__(self, sbmodule): |
| self.sbmodule = sbmodule |
| |
| def __len__(self): |
| if self.sbmodule: |
| return int(self.sbmodule.GetNumSections()) |
| return 0 |
| |
| def __getitem__(self, key): |
| count = len(self) |
| if type(key) is int: |
| if key < count: |
| return self.sbmodule.GetSectionAtIndex(key) |
| elif type(key) is str: |
| for idx in range(count): |
| section = self.sbmodule.GetSectionAtIndex(idx) |
| if section.name == key: |
| return section |
| elif isinstance(key, self.re_compile_type): |
| matches = [] |
| for idx in range(count): |
| section = self.sbmodule.GetSectionAtIndex(idx) |
| name = section.name |
| if name: |
| re_match = key.search(name) |
| if re_match: |
| matches.append(section) |
| return matches |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| class compile_units_access(object): |
| re_compile_type = type(re.compile('.')) |
| '''A helper object that will lazily hand out lldb.SBCompileUnit objects for a module when supplied an index, full or partial path, or regular expression.''' |
| def __init__(self, sbmodule): |
| self.sbmodule = sbmodule |
| |
| def __len__(self): |
| if self.sbmodule: |
| return int(self.sbmodule.GetNumCompileUnits()) |
| return 0 |
| |
| def __getitem__(self, key): |
| count = len(self) |
| if type(key) is int: |
| if key < count: |
| return self.sbmodule.GetCompileUnitAtIndex(key) |
| elif type(key) is str: |
| is_full_path = key[0] == '/' |
| for idx in range(count): |
| comp_unit = self.sbmodule.GetCompileUnitAtIndex(idx) |
| if is_full_path: |
| if comp_unit.file.fullpath == key: |
| return comp_unit |
| else: |
| if comp_unit.file.basename == key: |
| return comp_unit |
| elif isinstance(key, self.re_compile_type): |
| matches = [] |
| for idx in range(count): |
| comp_unit = self.sbmodule.GetCompileUnitAtIndex(idx) |
| fullpath = comp_unit.file.fullpath |
| if fullpath: |
| re_match = key.search(fullpath) |
| if re_match: |
| matches.append(comp_unit) |
| return matches |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| def get_sections_access_object(self): |
| '''An accessor function that returns a sections_access() object which allows lazy section array access.''' |
| return self.sections_access (self) |
| |
| def get_sections_array(self): |
| '''An accessor function that returns an array object that contains all sections in this module object.''' |
| if not hasattr(self, 'sections_array'): |
| self.sections_array = [] |
| for idx in range(self.num_sections): |
| self.sections_array.append(self.GetSectionAtIndex(idx)) |
| return self.sections_array |
| |
| def get_compile_units_array(self): |
| '''An accessor function that returns an array object that contains all compile_units in this module object.''' |
| if not hasattr(self, 'compile_units_array'): |
| self.compile_units_array = [] |
| for idx in range(self.GetNumCompileUnits()): |
| self.compile_units_array.append(self.GetCompileUnitAtIndex(idx)) |
| return self.compile_units_array |
| |
| symbols = property(get_symbols_array, None, doc='''A read only property that returns a list() of lldb.SBSymbol objects contained in this module.''') |
| symbol = property(get_symbols_access_object, None, doc='''A read only property that can be used to access symbols by index ("symbol = module.symbol[0]"), name ("symbols = module.symbol['main']"), or using a regular expression ("symbols = module.symbol[re.compile(...)]"). The return value is a single lldb.SBSymbol object for array access, and a list() of lldb.SBSymbol objects for name and regular expression access''') |
| sections = property(get_sections_array, None, doc='''A read only property that returns a list() of lldb.SBSection objects contained in this module.''') |
| compile_units = property(get_compile_units_array, None, doc='''A read only property that returns a list() of lldb.SBCompileUnit objects contained in this module.''') |
| section = property(get_sections_access_object, None, doc='''A read only property that can be used to access symbols by index ("section = module.section[0]"), name ("sections = module.section[\'main\']"), or using a regular expression ("sections = module.section[re.compile(...)]"). The return value is a single lldb.SBSection object for array access, and a list() of lldb.SBSection objects for name and regular expression access''') |
| section = property(get_sections_access_object, None, doc='''A read only property that can be used to access compile units by index ("compile_unit = module.compile_unit[0]"), name ("compile_unit = module.compile_unit[\'main.cpp\']"), or using a regular expression ("compile_unit = module.compile_unit[re.compile(...)]"). The return value is a single lldb.SBCompileUnit object for array access or by full or partial path, and a list() of lldb.SBCompileUnit objects regular expressions.''') |
| |
| def get_uuid(self): |
| return uuid.UUID (self.GetUUIDString()) |
| |
| uuid = property(get_uuid, None, doc='''A read only property that returns a standard python uuid.UUID object that represents the UUID of this module.''') |
| file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented where it is being debugged.''') |
| platform_file = property(GetPlatformFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented on the current host system.''') |
| byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this module.''') |
| addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this module.''') |
| triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this module.''') |
| num_symbols = property(GetNumSymbols, None, doc='''A read only property that returns number of symbols in the module symbol table as an integer.''') |
| num_sections = property(GetNumSections, None, doc='''A read only property that returns number of sections in the module as an integer.''') |
| |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBModule in _lldb: |
| _lldb.SBModule_swigregister(SBModule) |
| |
| def SBModule_GetNumberAllocatedModules() -> "uint32_t": |
| r""" |
| SBModule_GetNumberAllocatedModules() -> uint32_t |
| |
| Returns the number of modules in the module cache. This is an |
| implementation detail exposed for testing and should not be relied upon. |
| |
| @return |
| The number of modules in the module cache. |
| """ |
| return _lldb.SBModule_GetNumberAllocatedModules() |
| |
| def SBModule_GarbageCollectAllocatedModules() -> "void": |
| r""" |
| SBModule_GarbageCollectAllocatedModules() |
| |
| Removes all modules which are no longer needed by any part of LLDB from |
| the module cache. |
| |
| This is an implementation detail exposed for testing and should not be |
| relied upon. Use SBDebugger::MemoryPressureDetected instead to reduce |
| LLDB's memory consumption during execution. |
| |
| """ |
| return _lldb.SBModule_GarbageCollectAllocatedModules() |
| |
| class SBModuleSpec(object): |
| r"""Proxy of C++ lldb::SBModuleSpec class.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBModuleSpec self) -> SBModuleSpec |
| __init__(SBModuleSpec self, SBModuleSpec rhs) -> SBModuleSpec |
| """ |
| _lldb.SBModuleSpec_swiginit(self, _lldb.new_SBModuleSpec(*args)) |
| __swig_destroy__ = _lldb.delete_SBModuleSpec |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBModuleSpec self) -> bool""" |
| return _lldb.SBModuleSpec_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBModuleSpec___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBModuleSpec self)""" |
| return _lldb.SBModuleSpec_Clear(self) |
| |
| def GetFileSpec(self) -> "lldb::SBFileSpec": |
| r""" |
| GetFileSpec(SBModuleSpec self) -> SBFileSpec |
| |
| Get const accessor for the module file. |
| |
| This function returns the file for the module on the host system |
| that is running LLDB. This can differ from the path on the |
| platform since we might be doing remote debugging. |
| |
| @return |
| A const reference to the file specification object. |
| """ |
| return _lldb.SBModuleSpec_GetFileSpec(self) |
| |
| def SetFileSpec(self, fspec: "SBFileSpec") -> "void": |
| r"""SetFileSpec(SBModuleSpec self, SBFileSpec fspec)""" |
| return _lldb.SBModuleSpec_SetFileSpec(self, fspec) |
| |
| def GetPlatformFileSpec(self) -> "lldb::SBFileSpec": |
| r""" |
| GetPlatformFileSpec(SBModuleSpec self) -> SBFileSpec |
| |
| Get accessor for the module platform file. |
| |
| Platform file refers to the path of the module as it is known on |
| the remote system on which it is being debugged. For local |
| debugging this is always the same as Module::GetFileSpec(). But |
| remote debugging might mention a file '/usr/lib/liba.dylib' |
| which might be locally downloaded and cached. In this case the |
| platform file could be something like: |
| '/tmp/lldb/platform-cache/remote.host.computer/usr/lib/liba.dylib' |
| The file could also be cached in a local developer kit directory. |
| |
| @return |
| A const reference to the file specification object. |
| """ |
| return _lldb.SBModuleSpec_GetPlatformFileSpec(self) |
| |
| def SetPlatformFileSpec(self, fspec: "SBFileSpec") -> "void": |
| r"""SetPlatformFileSpec(SBModuleSpec self, SBFileSpec fspec)""" |
| return _lldb.SBModuleSpec_SetPlatformFileSpec(self, fspec) |
| |
| def GetSymbolFileSpec(self) -> "lldb::SBFileSpec": |
| r"""GetSymbolFileSpec(SBModuleSpec self) -> SBFileSpec""" |
| return _lldb.SBModuleSpec_GetSymbolFileSpec(self) |
| |
| def SetSymbolFileSpec(self, fspec: "SBFileSpec") -> "void": |
| r"""SetSymbolFileSpec(SBModuleSpec self, SBFileSpec fspec)""" |
| return _lldb.SBModuleSpec_SetSymbolFileSpec(self, fspec) |
| |
| def GetObjectName(self) -> "char const *": |
| r"""GetObjectName(SBModuleSpec self) -> char const *""" |
| return _lldb.SBModuleSpec_GetObjectName(self) |
| |
| def SetObjectName(self, name: "char const *") -> "void": |
| r"""SetObjectName(SBModuleSpec self, char const * name)""" |
| return _lldb.SBModuleSpec_SetObjectName(self, name) |
| |
| def GetTriple(self) -> "char const *": |
| r"""GetTriple(SBModuleSpec self) -> char const *""" |
| return _lldb.SBModuleSpec_GetTriple(self) |
| |
| def SetTriple(self, triple: "char const *") -> "void": |
| r"""SetTriple(SBModuleSpec self, char const * triple)""" |
| return _lldb.SBModuleSpec_SetTriple(self, triple) |
| |
| def GetUUIDBytes(self) -> "uint8_t const *": |
| r"""GetUUIDBytes(SBModuleSpec self) -> uint8_t const *""" |
| return _lldb.SBModuleSpec_GetUUIDBytes(self) |
| |
| def GetUUIDLength(self) -> "size_t": |
| r"""GetUUIDLength(SBModuleSpec self) -> size_t""" |
| return _lldb.SBModuleSpec_GetUUIDLength(self) |
| |
| def SetUUIDBytes(self, uuid: "uint8_t const *", uuid_len: "size_t") -> "bool": |
| r"""SetUUIDBytes(SBModuleSpec self, uint8_t const * uuid, size_t uuid_len) -> bool""" |
| return _lldb.SBModuleSpec_SetUUIDBytes(self, uuid, uuid_len) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBModuleSpec self, SBStream description) -> bool""" |
| return _lldb.SBModuleSpec_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBModuleSpec self) -> std::string""" |
| return _lldb.SBModuleSpec___str__(self) |
| |
| # Register SBModuleSpec in _lldb: |
| _lldb.SBModuleSpec_swigregister(SBModuleSpec) |
| |
| class SBModuleSpecList(object): |
| r"""Represents a list of :py:class:`SBModuleSpec`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBModuleSpecList self) -> SBModuleSpecList |
| __init__(SBModuleSpecList self, SBModuleSpecList rhs) -> SBModuleSpecList |
| """ |
| _lldb.SBModuleSpecList_swiginit(self, _lldb.new_SBModuleSpecList(*args)) |
| __swig_destroy__ = _lldb.delete_SBModuleSpecList |
| |
| @staticmethod |
| def GetModuleSpecifications(path: "char const *") -> "lldb::SBModuleSpecList": |
| r"""GetModuleSpecifications(char const * path) -> SBModuleSpecList""" |
| return _lldb.SBModuleSpecList_GetModuleSpecifications(path) |
| |
| def Append(self, *args) -> "void": |
| r""" |
| Append(SBModuleSpecList self, SBModuleSpec spec) |
| Append(SBModuleSpecList self, SBModuleSpecList spec_list) |
| """ |
| return _lldb.SBModuleSpecList_Append(self, *args) |
| |
| def FindFirstMatchingSpec(self, match_spec: "SBModuleSpec") -> "lldb::SBModuleSpec": |
| r"""FindFirstMatchingSpec(SBModuleSpecList self, SBModuleSpec match_spec) -> SBModuleSpec""" |
| return _lldb.SBModuleSpecList_FindFirstMatchingSpec(self, match_spec) |
| |
| def FindMatchingSpecs(self, match_spec: "SBModuleSpec") -> "lldb::SBModuleSpecList": |
| r"""FindMatchingSpecs(SBModuleSpecList self, SBModuleSpec match_spec) -> SBModuleSpecList""" |
| return _lldb.SBModuleSpecList_FindMatchingSpecs(self, match_spec) |
| |
| def GetSize(self) -> "size_t": |
| r"""GetSize(SBModuleSpecList self) -> size_t""" |
| return _lldb.SBModuleSpecList_GetSize(self) |
| |
| def GetSpecAtIndex(self, i: "size_t") -> "lldb::SBModuleSpec": |
| r"""GetSpecAtIndex(SBModuleSpecList self, size_t i) -> SBModuleSpec""" |
| return _lldb.SBModuleSpecList_GetSpecAtIndex(self, i) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBModuleSpecList self, SBStream description) -> bool""" |
| return _lldb.SBModuleSpecList_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBModuleSpecList self) -> std::string""" |
| return _lldb.SBModuleSpecList___str__(self) |
| |
| # Register SBModuleSpecList in _lldb: |
| _lldb.SBModuleSpecList_swigregister(SBModuleSpecList) |
| |
| def SBModuleSpecList_GetModuleSpecifications(path: "char const *") -> "lldb::SBModuleSpecList": |
| r"""SBModuleSpecList_GetModuleSpecifications(char const * path) -> SBModuleSpecList""" |
| return _lldb.SBModuleSpecList_GetModuleSpecifications(path) |
| |
| class SBPlatformConnectOptions(object): |
| r"""Describes how :py:class:`SBPlatform.ConnectRemote` connects to a remote platform.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBPlatformConnectOptions self, char const * url) -> SBPlatformConnectOptions |
| __init__(SBPlatformConnectOptions self, SBPlatformConnectOptions rhs) -> SBPlatformConnectOptions |
| """ |
| _lldb.SBPlatformConnectOptions_swiginit(self, _lldb.new_SBPlatformConnectOptions(*args)) |
| __swig_destroy__ = _lldb.delete_SBPlatformConnectOptions |
| |
| def GetURL(self) -> "char const *": |
| r"""GetURL(SBPlatformConnectOptions self) -> char const *""" |
| return _lldb.SBPlatformConnectOptions_GetURL(self) |
| |
| def SetURL(self, url: "char const *") -> "void": |
| r"""SetURL(SBPlatformConnectOptions self, char const * url)""" |
| return _lldb.SBPlatformConnectOptions_SetURL(self, url) |
| |
| def GetRsyncEnabled(self) -> "bool": |
| r"""GetRsyncEnabled(SBPlatformConnectOptions self) -> bool""" |
| return _lldb.SBPlatformConnectOptions_GetRsyncEnabled(self) |
| |
| def EnableRsync(self, options: "char const *", remote_path_prefix: "char const *", omit_remote_hostname: "bool") -> "void": |
| r"""EnableRsync(SBPlatformConnectOptions self, char const * options, char const * remote_path_prefix, bool omit_remote_hostname)""" |
| return _lldb.SBPlatformConnectOptions_EnableRsync(self, options, remote_path_prefix, omit_remote_hostname) |
| |
| def DisableRsync(self) -> "void": |
| r"""DisableRsync(SBPlatformConnectOptions self)""" |
| return _lldb.SBPlatformConnectOptions_DisableRsync(self) |
| |
| def GetLocalCacheDirectory(self) -> "char const *": |
| r"""GetLocalCacheDirectory(SBPlatformConnectOptions self) -> char const *""" |
| return _lldb.SBPlatformConnectOptions_GetLocalCacheDirectory(self) |
| |
| def SetLocalCacheDirectory(self, path: "char const *") -> "void": |
| r"""SetLocalCacheDirectory(SBPlatformConnectOptions self, char const * path)""" |
| return _lldb.SBPlatformConnectOptions_SetLocalCacheDirectory(self, path) |
| |
| # Register SBPlatformConnectOptions in _lldb: |
| _lldb.SBPlatformConnectOptions_swigregister(SBPlatformConnectOptions) |
| |
| class SBPlatformShellCommand(object): |
| r"""Represents a shell command that can be run by :py:class:`SBPlatform.Run`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBPlatformShellCommand self, char const * shell, char const * shell_command) -> SBPlatformShellCommand |
| __init__(SBPlatformShellCommand self, char const * shell_command) -> SBPlatformShellCommand |
| __init__(SBPlatformShellCommand self, SBPlatformShellCommand rhs) -> SBPlatformShellCommand |
| """ |
| _lldb.SBPlatformShellCommand_swiginit(self, _lldb.new_SBPlatformShellCommand(*args)) |
| __swig_destroy__ = _lldb.delete_SBPlatformShellCommand |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBPlatformShellCommand self)""" |
| return _lldb.SBPlatformShellCommand_Clear(self) |
| |
| def GetShell(self) -> "char const *": |
| r"""GetShell(SBPlatformShellCommand self) -> char const *""" |
| return _lldb.SBPlatformShellCommand_GetShell(self) |
| |
| def SetShell(self, shell_interpreter: "char const *") -> "void": |
| r"""SetShell(SBPlatformShellCommand self, char const * shell_interpreter)""" |
| return _lldb.SBPlatformShellCommand_SetShell(self, shell_interpreter) |
| |
| def GetCommand(self) -> "char const *": |
| r"""GetCommand(SBPlatformShellCommand self) -> char const *""" |
| return _lldb.SBPlatformShellCommand_GetCommand(self) |
| |
| def SetCommand(self, shell_command: "char const *") -> "void": |
| r"""SetCommand(SBPlatformShellCommand self, char const * shell_command)""" |
| return _lldb.SBPlatformShellCommand_SetCommand(self, shell_command) |
| |
| def GetWorkingDirectory(self) -> "char const *": |
| r"""GetWorkingDirectory(SBPlatformShellCommand self) -> char const *""" |
| return _lldb.SBPlatformShellCommand_GetWorkingDirectory(self) |
| |
| def SetWorkingDirectory(self, path: "char const *") -> "void": |
| r"""SetWorkingDirectory(SBPlatformShellCommand self, char const * path)""" |
| return _lldb.SBPlatformShellCommand_SetWorkingDirectory(self, path) |
| |
| def GetTimeoutSeconds(self) -> "uint32_t": |
| r"""GetTimeoutSeconds(SBPlatformShellCommand self) -> uint32_t""" |
| return _lldb.SBPlatformShellCommand_GetTimeoutSeconds(self) |
| |
| def SetTimeoutSeconds(self, sec: "uint32_t") -> "void": |
| r"""SetTimeoutSeconds(SBPlatformShellCommand self, uint32_t sec)""" |
| return _lldb.SBPlatformShellCommand_SetTimeoutSeconds(self, sec) |
| |
| def GetSignal(self) -> "int": |
| r"""GetSignal(SBPlatformShellCommand self) -> int""" |
| return _lldb.SBPlatformShellCommand_GetSignal(self) |
| |
| def GetStatus(self) -> "int": |
| r"""GetStatus(SBPlatformShellCommand self) -> int""" |
| return _lldb.SBPlatformShellCommand_GetStatus(self) |
| |
| def GetOutput(self) -> "char const *": |
| r"""GetOutput(SBPlatformShellCommand self) -> char const *""" |
| return _lldb.SBPlatformShellCommand_GetOutput(self) |
| |
| # Register SBPlatformShellCommand in _lldb: |
| _lldb.SBPlatformShellCommand_swigregister(SBPlatformShellCommand) |
| |
| class SBPlatform(object): |
| r""" |
| A class that represents a platform that can represent the current host or a remote host debug platform. |
| |
| The SBPlatform class represents the current host, or a remote host. |
| It can be connected to a remote platform in order to provide ways |
| to remotely launch and attach to processes, upload/download files, |
| create directories, run remote shell commands, find locally cached |
| versions of files from the remote system, and much more. |
| |
| SBPlatform objects can be created and then used to connect to a remote |
| platform which allows the SBPlatform to be used to get a list of the |
| current processes on the remote host, attach to one of those processes, |
| install programs on the remote system, attach and launch processes, |
| and much more. |
| |
| Every :py:class:`SBTarget` has a corresponding SBPlatform. The platform can be |
| specified upon target creation, or the currently selected platform |
| will attempt to be used when creating the target automatically as long |
| as the currently selected platform matches the target architecture |
| and executable type. If the architecture or executable type do not match, |
| a suitable platform will be found automatically. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBPlatform self) -> SBPlatform |
| __init__(SBPlatform self, char const * arg2) -> SBPlatform |
| """ |
| _lldb.SBPlatform_swiginit(self, _lldb.new_SBPlatform(*args)) |
| __swig_destroy__ = _lldb.delete_SBPlatform |
| |
| @staticmethod |
| def GetHostPlatform() -> "lldb::SBPlatform": |
| r"""GetHostPlatform() -> SBPlatform""" |
| return _lldb.SBPlatform_GetHostPlatform() |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBPlatform self) -> bool""" |
| return _lldb.SBPlatform_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBPlatform___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBPlatform self)""" |
| return _lldb.SBPlatform_Clear(self) |
| |
| def GetWorkingDirectory(self) -> "char const *": |
| r"""GetWorkingDirectory(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetWorkingDirectory(self) |
| |
| def SetWorkingDirectory(self, arg2: "char const *") -> "bool": |
| r"""SetWorkingDirectory(SBPlatform self, char const * arg2) -> bool""" |
| return _lldb.SBPlatform_SetWorkingDirectory(self, arg2) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetName(self) |
| |
| def ConnectRemote(self, connect_options: "SBPlatformConnectOptions") -> "lldb::SBError": |
| r"""ConnectRemote(SBPlatform self, SBPlatformConnectOptions connect_options) -> SBError""" |
| return _lldb.SBPlatform_ConnectRemote(self, connect_options) |
| |
| def DisconnectRemote(self) -> "void": |
| r"""DisconnectRemote(SBPlatform self)""" |
| return _lldb.SBPlatform_DisconnectRemote(self) |
| |
| def IsConnected(self) -> "bool": |
| r"""IsConnected(SBPlatform self) -> bool""" |
| return _lldb.SBPlatform_IsConnected(self) |
| |
| def GetTriple(self) -> "char const *": |
| r"""GetTriple(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetTriple(self) |
| |
| def GetHostname(self) -> "char const *": |
| r"""GetHostname(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetHostname(self) |
| |
| def GetOSBuild(self) -> "char const *": |
| r"""GetOSBuild(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetOSBuild(self) |
| |
| def GetOSDescription(self) -> "char const *": |
| r"""GetOSDescription(SBPlatform self) -> char const *""" |
| return _lldb.SBPlatform_GetOSDescription(self) |
| |
| def GetOSMajorVersion(self) -> "uint32_t": |
| r"""GetOSMajorVersion(SBPlatform self) -> uint32_t""" |
| return _lldb.SBPlatform_GetOSMajorVersion(self) |
| |
| def GetOSMinorVersion(self) -> "uint32_t": |
| r"""GetOSMinorVersion(SBPlatform self) -> uint32_t""" |
| return _lldb.SBPlatform_GetOSMinorVersion(self) |
| |
| def GetOSUpdateVersion(self) -> "uint32_t": |
| r"""GetOSUpdateVersion(SBPlatform self) -> uint32_t""" |
| return _lldb.SBPlatform_GetOSUpdateVersion(self) |
| |
| def SetSDKRoot(self, sysroot: "char const *") -> "void": |
| r"""SetSDKRoot(SBPlatform self, char const * sysroot)""" |
| return _lldb.SBPlatform_SetSDKRoot(self, sysroot) |
| |
| def Get(self, src: "SBFileSpec", dst: "SBFileSpec") -> "lldb::SBError": |
| r"""Get(SBPlatform self, SBFileSpec src, SBFileSpec dst) -> SBError""" |
| return _lldb.SBPlatform_Get(self, src, dst) |
| |
| def Put(self, src: "SBFileSpec", dst: "SBFileSpec") -> "lldb::SBError": |
| r"""Put(SBPlatform self, SBFileSpec src, SBFileSpec dst) -> SBError""" |
| return _lldb.SBPlatform_Put(self, src, dst) |
| |
| def Install(self, src: "SBFileSpec", dst: "SBFileSpec") -> "lldb::SBError": |
| r"""Install(SBPlatform self, SBFileSpec src, SBFileSpec dst) -> SBError""" |
| return _lldb.SBPlatform_Install(self, src, dst) |
| |
| def Run(self, shell_command: "SBPlatformShellCommand") -> "lldb::SBError": |
| r"""Run(SBPlatform self, SBPlatformShellCommand shell_command) -> SBError""" |
| return _lldb.SBPlatform_Run(self, shell_command) |
| |
| def Launch(self, launch_info: "SBLaunchInfo") -> "lldb::SBError": |
| r"""Launch(SBPlatform self, SBLaunchInfo launch_info) -> SBError""" |
| return _lldb.SBPlatform_Launch(self, launch_info) |
| |
| def Kill(self, pid: "lldb::pid_t const") -> "lldb::SBError": |
| r"""Kill(SBPlatform self, lldb::pid_t const pid) -> SBError""" |
| return _lldb.SBPlatform_Kill(self, pid) |
| |
| def MakeDirectory(self, *args) -> "lldb::SBError": |
| r"""MakeDirectory(SBPlatform self, char const * path, uint32_t file_permissions=eFilePermissionsDirectoryDefault) -> SBError""" |
| return _lldb.SBPlatform_MakeDirectory(self, *args) |
| |
| def GetFilePermissions(self, path: "char const *") -> "uint32_t": |
| r"""GetFilePermissions(SBPlatform self, char const * path) -> uint32_t""" |
| return _lldb.SBPlatform_GetFilePermissions(self, path) |
| |
| def SetFilePermissions(self, path: "char const *", file_permissions: "uint32_t") -> "lldb::SBError": |
| r"""SetFilePermissions(SBPlatform self, char const * path, uint32_t file_permissions) -> SBError""" |
| return _lldb.SBPlatform_SetFilePermissions(self, path, file_permissions) |
| |
| def GetUnixSignals(self) -> "lldb::SBUnixSignals": |
| r"""GetUnixSignals(SBPlatform self) -> SBUnixSignals""" |
| return _lldb.SBPlatform_GetUnixSignals(self) |
| |
| def GetEnvironment(self) -> "lldb::SBEnvironment": |
| r"""GetEnvironment(SBPlatform self) -> SBEnvironment""" |
| return _lldb.SBPlatform_GetEnvironment(self) |
| |
| # Register SBPlatform in _lldb: |
| _lldb.SBPlatform_swigregister(SBPlatform) |
| |
| def SBPlatform_GetHostPlatform() -> "lldb::SBPlatform": |
| r"""SBPlatform_GetHostPlatform() -> SBPlatform""" |
| return _lldb.SBPlatform_GetHostPlatform() |
| |
| class SBProcess(object): |
| r""" |
| Represents the process associated with the target program. |
| |
| SBProcess supports thread iteration. For example (from test/lldbutil.py), :: |
| |
| # ================================================== |
| # Utility functions related to Threads and Processes |
| # ================================================== |
| |
| def get_stopped_threads(process, reason): |
| '''Returns the thread(s) with the specified stop reason in a list. |
| |
| The list can be empty if no such thread exists. |
| ''' |
| threads = [] |
| for t in process: |
| if t.GetStopReason() == reason: |
| threads.append(t) |
| return threads |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| eBroadcastBitStateChanged = _lldb.SBProcess_eBroadcastBitStateChanged |
| |
| eBroadcastBitInterrupt = _lldb.SBProcess_eBroadcastBitInterrupt |
| |
| eBroadcastBitSTDOUT = _lldb.SBProcess_eBroadcastBitSTDOUT |
| |
| eBroadcastBitSTDERR = _lldb.SBProcess_eBroadcastBitSTDERR |
| |
| eBroadcastBitProfileData = _lldb.SBProcess_eBroadcastBitProfileData |
| |
| eBroadcastBitStructuredData = _lldb.SBProcess_eBroadcastBitStructuredData |
| |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBProcess self) -> SBProcess |
| __init__(SBProcess self, SBProcess rhs) -> SBProcess |
| """ |
| _lldb.SBProcess_swiginit(self, _lldb.new_SBProcess(*args)) |
| __swig_destroy__ = _lldb.delete_SBProcess |
| |
| @staticmethod |
| def GetBroadcasterClassName() -> "char const *": |
| r"""GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBProcess_GetBroadcasterClassName() |
| |
| def GetPluginName(self) -> "char const *": |
| r"""GetPluginName(SBProcess self) -> char const *""" |
| return _lldb.SBProcess_GetPluginName(self) |
| |
| def GetShortPluginName(self) -> "char const *": |
| r"""GetShortPluginName(SBProcess self) -> char const *""" |
| return _lldb.SBProcess_GetShortPluginName(self) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBProcess self)""" |
| return _lldb.SBProcess_Clear(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBProcess self) -> bool""" |
| return _lldb.SBProcess_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBProcess___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetTarget(self) -> "lldb::SBTarget": |
| r"""GetTarget(SBProcess self) -> SBTarget""" |
| return _lldb.SBProcess_GetTarget(self) |
| |
| def GetByteOrder(self) -> "lldb::ByteOrder": |
| r"""GetByteOrder(SBProcess self) -> lldb::ByteOrder""" |
| return _lldb.SBProcess_GetByteOrder(self) |
| |
| def PutSTDIN(self, src: "char const *") -> "size_t": |
| r""" |
| |
| Writes data into the current process's stdin. API client specifies a Python |
| string as the only argument. |
| """ |
| return _lldb.SBProcess_PutSTDIN(self, src) |
| |
| def GetSTDOUT(self, dst: "char *") -> "size_t": |
| r""" |
| |
| Reads data from the current process's stdout stream. API client specifies |
| the size of the buffer to read data into. It returns the byte buffer in a |
| Python string. |
| """ |
| return _lldb.SBProcess_GetSTDOUT(self, dst) |
| |
| def GetSTDERR(self, dst: "char *") -> "size_t": |
| r""" |
| |
| Reads data from the current process's stderr stream. API client specifies |
| the size of the buffer to read data into. It returns the byte buffer in a |
| Python string. |
| """ |
| return _lldb.SBProcess_GetSTDERR(self, dst) |
| |
| def GetAsyncProfileData(self, dst: "char *") -> "size_t": |
| r"""GetAsyncProfileData(SBProcess self, char * dst) -> size_t""" |
| return _lldb.SBProcess_GetAsyncProfileData(self, dst) |
| |
| def ReportEventState(self, *args) -> "void": |
| r""" |
| ReportEventState(SBProcess self, SBEvent event, SBFile out) |
| ReportEventState(SBProcess self, SBEvent event, lldb::FileSP BORROWED) |
| """ |
| return _lldb.SBProcess_ReportEventState(self, *args) |
| |
| def AppendEventStateReport(self, event: "SBEvent", result: "SBCommandReturnObject") -> "void": |
| r"""AppendEventStateReport(SBProcess self, SBEvent event, SBCommandReturnObject result)""" |
| return _lldb.SBProcess_AppendEventStateReport(self, event, result) |
| |
| def RemoteAttachToProcessWithID(self, pid: "lldb::pid_t", error: "SBError") -> "bool": |
| r""" |
| RemoteAttachToProcessWithID(SBProcess self, lldb::pid_t pid, SBError error) -> bool |
| |
| Remote connection related functions. These will fail if the |
| process is not in eStateConnected. They are intended for use |
| when connecting to an externally managed debugserver instance. |
| """ |
| return _lldb.SBProcess_RemoteAttachToProcessWithID(self, pid, error) |
| |
| def RemoteLaunch(self, argv: "char const **", envp: "char const **", stdin_path: "char const *", stdout_path: "char const *", stderr_path: "char const *", working_directory: "char const *", launch_flags: "uint32_t", stop_at_entry: "bool", error: "SBError") -> "bool": |
| r""" |
| RemoteLaunch(SBProcess self, char const ** argv, char const ** envp, char const * stdin_path, char const * stdout_path, char const * stderr_path, char const * working_directory, uint32_t launch_flags, bool stop_at_entry, SBError error) -> bool |
| See SBTarget.Launch for argument description and usage. |
| """ |
| return _lldb.SBProcess_RemoteLaunch(self, argv, envp, stdin_path, stdout_path, stderr_path, working_directory, launch_flags, stop_at_entry, error) |
| |
| def GetNumThreads(self) -> "uint32_t": |
| r"""GetNumThreads(SBProcess self) -> uint32_t""" |
| return _lldb.SBProcess_GetNumThreads(self) |
| |
| def GetThreadAtIndex(self, index: "size_t") -> "lldb::SBThread": |
| r""" |
| |
| Returns the INDEX'th thread from the list of current threads. The index |
| of a thread is only valid for the current stop. For a persistent thread |
| identifier use either the thread ID or the IndexID. See help on SBThread |
| for more details. |
| """ |
| return _lldb.SBProcess_GetThreadAtIndex(self, index) |
| |
| def GetThreadByID(self, sb_thread_id: "lldb::tid_t") -> "lldb::SBThread": |
| r""" |
| |
| Returns the thread with the given thread ID. |
| """ |
| return _lldb.SBProcess_GetThreadByID(self, sb_thread_id) |
| |
| def GetThreadByIndexID(self, index_id: "uint32_t") -> "lldb::SBThread": |
| r""" |
| |
| Returns the thread with the given thread IndexID. |
| """ |
| return _lldb.SBProcess_GetThreadByIndexID(self, index_id) |
| |
| def GetSelectedThread(self) -> "lldb::SBThread": |
| r""" |
| |
| Returns the currently selected thread. |
| """ |
| return _lldb.SBProcess_GetSelectedThread(self) |
| |
| def CreateOSPluginThread(self, tid: "lldb::tid_t", context: "lldb::addr_t") -> "lldb::SBThread": |
| r""" |
| |
| Lazily create a thread on demand through the current OperatingSystem plug-in, if the current OperatingSystem plug-in supports it. |
| """ |
| return _lldb.SBProcess_CreateOSPluginThread(self, tid, context) |
| |
| def SetSelectedThread(self, thread: "SBThread") -> "bool": |
| r"""SetSelectedThread(SBProcess self, SBThread thread) -> bool""" |
| return _lldb.SBProcess_SetSelectedThread(self, thread) |
| |
| def SetSelectedThreadByID(self, tid: "lldb::tid_t") -> "bool": |
| r"""SetSelectedThreadByID(SBProcess self, lldb::tid_t tid) -> bool""" |
| return _lldb.SBProcess_SetSelectedThreadByID(self, tid) |
| |
| def SetSelectedThreadByIndexID(self, index_id: "uint32_t") -> "bool": |
| r"""SetSelectedThreadByIndexID(SBProcess self, uint32_t index_id) -> bool""" |
| return _lldb.SBProcess_SetSelectedThreadByIndexID(self, index_id) |
| |
| def GetNumQueues(self) -> "uint32_t": |
| r"""GetNumQueues(SBProcess self) -> uint32_t""" |
| return _lldb.SBProcess_GetNumQueues(self) |
| |
| def GetQueueAtIndex(self, index: "uint32_t") -> "lldb::SBQueue": |
| r"""GetQueueAtIndex(SBProcess self, uint32_t index) -> SBQueue""" |
| return _lldb.SBProcess_GetQueueAtIndex(self, index) |
| |
| def GetState(self) -> "lldb::StateType": |
| r"""GetState(SBProcess self) -> lldb::StateType""" |
| return _lldb.SBProcess_GetState(self) |
| |
| def GetExitStatus(self) -> "int": |
| r"""GetExitStatus(SBProcess self) -> int""" |
| return _lldb.SBProcess_GetExitStatus(self) |
| |
| def GetExitDescription(self) -> "char const *": |
| r"""GetExitDescription(SBProcess self) -> char const *""" |
| return _lldb.SBProcess_GetExitDescription(self) |
| |
| def GetProcessID(self) -> "lldb::pid_t": |
| r""" |
| |
| Returns the process ID of the process. |
| """ |
| return _lldb.SBProcess_GetProcessID(self) |
| |
| def GetUniqueID(self) -> "uint32_t": |
| r""" |
| |
| Returns an integer ID that is guaranteed to be unique across all process instances. This is not the process ID, just a unique integer for comparison and caching purposes. |
| """ |
| return _lldb.SBProcess_GetUniqueID(self) |
| |
| def GetAddressByteSize(self) -> "uint32_t": |
| r"""GetAddressByteSize(SBProcess self) -> uint32_t""" |
| return _lldb.SBProcess_GetAddressByteSize(self) |
| |
| def Destroy(self) -> "lldb::SBError": |
| r""" |
| Destroy(SBProcess self) -> SBError |
| |
| Kills the process and shuts down all threads that were spawned to |
| track and monitor process. |
| """ |
| return _lldb.SBProcess_Destroy(self) |
| |
| def Continue(self) -> "lldb::SBError": |
| r"""Continue(SBProcess self) -> SBError""" |
| return _lldb.SBProcess_Continue(self) |
| |
| def Stop(self) -> "lldb::SBError": |
| r"""Stop(SBProcess self) -> SBError""" |
| return _lldb.SBProcess_Stop(self) |
| |
| def Kill(self) -> "lldb::SBError": |
| r"""Kill(SBProcess self) -> SBError""" |
| return _lldb.SBProcess_Kill(self) |
| |
| def Detach(self) -> "lldb::SBError": |
| r"""Detach(SBProcess self) -> SBError""" |
| return _lldb.SBProcess_Detach(self) |
| |
| def Signal(self, signal: "int") -> "lldb::SBError": |
| r""" |
| Signal(SBProcess self, int signal) -> SBError |
| Sends the process a unix signal. |
| """ |
| return _lldb.SBProcess_Signal(self, signal) |
| |
| def GetUnixSignals(self) -> "lldb::SBUnixSignals": |
| r"""GetUnixSignals(SBProcess self) -> SBUnixSignals""" |
| return _lldb.SBProcess_GetUnixSignals(self) |
| |
| def GetStopID(self, include_expression_stops: "bool"=False) -> "uint32_t": |
| r""" |
| GetStopID(SBProcess self, bool include_expression_stops=False) -> uint32_t |
| |
| Returns a stop id that will increase every time the process executes. If |
| include_expression_stops is true, then stops caused by expression evaluation |
| will cause the returned value to increase, otherwise the counter returned will |
| only increase when execution is continued explicitly by the user. Note, the value |
| will always increase, but may increase by more than one per stop. |
| """ |
| return _lldb.SBProcess_GetStopID(self, include_expression_stops) |
| |
| def SendAsyncInterrupt(self) -> "void": |
| r"""SendAsyncInterrupt(SBProcess self)""" |
| return _lldb.SBProcess_SendAsyncInterrupt(self) |
| |
| def ReadMemory(self, addr: "lldb::addr_t", buf: "void *", error: "SBError") -> "size_t": |
| r""" |
| |
| Reads memory from the current process's address space and removes any |
| traps that may have been inserted into the memory. It returns the byte |
| buffer in a Python string. Example: :: |
| |
| # Read 4 bytes from address 'addr' and assume error.Success() is True. |
| content = process.ReadMemory(addr, 4, error) |
| new_bytes = bytearray(content) |
| """ |
| return _lldb.SBProcess_ReadMemory(self, addr, buf, error) |
| |
| def WriteMemory(self, addr: "lldb::addr_t", buf: "void const *", error: "SBError") -> "size_t": |
| r""" |
| |
| Writes memory to the current process's address space and maintains any |
| traps that might be present due to software breakpoints. Example: :: |
| |
| # Create a Python string from the byte array. |
| new_value = str(bytes) |
| result = process.WriteMemory(addr, new_value, error) |
| if not error.Success() or result != len(bytes): |
| print('SBProcess.WriteMemory() failed!') |
| """ |
| return _lldb.SBProcess_WriteMemory(self, addr, buf, error) |
| |
| def ReadCStringFromMemory(self, addr: "lldb::addr_t", char_buf: "void *", error: "SBError") -> "size_t": |
| r""" |
| |
| Reads a NULL terminated C string from the current process's address space. |
| It returns a python string of the exact length, or truncates the string if |
| the maximum character limit is reached. Example: :: |
| |
| # Read a C string of at most 256 bytes from address '0x1000' |
| error = lldb.SBError() |
| cstring = process.ReadCStringFromMemory(0x1000, 256, error) |
| if error.Success(): |
| print('cstring: ', cstring) |
| else |
| print('error: ', error) |
| """ |
| return _lldb.SBProcess_ReadCStringFromMemory(self, addr, char_buf, error) |
| |
| def ReadUnsignedFromMemory(self, addr: "lldb::addr_t", byte_size: "uint32_t", error: "SBError") -> "uint64_t": |
| r""" |
| |
| Reads an unsigned integer from memory given a byte size and an address. |
| Returns the unsigned integer that was read. Example: :: |
| |
| # Read a 4 byte unsigned integer from address 0x1000 |
| error = lldb.SBError() |
| uint = ReadUnsignedFromMemory(0x1000, 4, error) |
| if error.Success(): |
| print('integer: %u' % uint) |
| else |
| print('error: ', error) |
| """ |
| return _lldb.SBProcess_ReadUnsignedFromMemory(self, addr, byte_size, error) |
| |
| def ReadPointerFromMemory(self, addr: "lldb::addr_t", error: "SBError") -> "lldb::addr_t": |
| r""" |
| |
| Reads a pointer from memory from an address and returns the value. Example: :: |
| |
| # Read a pointer from address 0x1000 |
| error = lldb.SBError() |
| ptr = ReadPointerFromMemory(0x1000, error) |
| if error.Success(): |
| print('pointer: 0x%x' % ptr) |
| else |
| print('error: ', error) |
| """ |
| return _lldb.SBProcess_ReadPointerFromMemory(self, addr, error) |
| |
| @staticmethod |
| def GetStateFromEvent(event: "SBEvent") -> "lldb::StateType": |
| r"""GetStateFromEvent(SBEvent event) -> lldb::StateType""" |
| return _lldb.SBProcess_GetStateFromEvent(event) |
| |
| @staticmethod |
| def GetRestartedFromEvent(event: "SBEvent") -> "bool": |
| r"""GetRestartedFromEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_GetRestartedFromEvent(event) |
| |
| @staticmethod |
| def GetNumRestartedReasonsFromEvent(event: "SBEvent") -> "size_t": |
| r"""GetNumRestartedReasonsFromEvent(SBEvent event) -> size_t""" |
| return _lldb.SBProcess_GetNumRestartedReasonsFromEvent(event) |
| |
| @staticmethod |
| def GetRestartedReasonAtIndexFromEvent(event: "SBEvent", idx: "size_t") -> "char const *": |
| r"""GetRestartedReasonAtIndexFromEvent(SBEvent event, size_t idx) -> char const *""" |
| return _lldb.SBProcess_GetRestartedReasonAtIndexFromEvent(event, idx) |
| |
| @staticmethod |
| def GetProcessFromEvent(event: "SBEvent") -> "lldb::SBProcess": |
| r"""GetProcessFromEvent(SBEvent event) -> SBProcess""" |
| return _lldb.SBProcess_GetProcessFromEvent(event) |
| |
| @staticmethod |
| def GetInterruptedFromEvent(event: "SBEvent") -> "bool": |
| r"""GetInterruptedFromEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_GetInterruptedFromEvent(event) |
| |
| @staticmethod |
| def GetStructuredDataFromEvent(event: "SBEvent") -> "lldb::SBStructuredData": |
| r"""GetStructuredDataFromEvent(SBEvent event) -> SBStructuredData""" |
| return _lldb.SBProcess_GetStructuredDataFromEvent(event) |
| |
| @staticmethod |
| def EventIsProcessEvent(event: "SBEvent") -> "bool": |
| r"""EventIsProcessEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_EventIsProcessEvent(event) |
| |
| @staticmethod |
| def EventIsStructuredDataEvent(event: "SBEvent") -> "bool": |
| r"""EventIsStructuredDataEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_EventIsStructuredDataEvent(event) |
| |
| def GetBroadcaster(self) -> "lldb::SBBroadcaster": |
| r"""GetBroadcaster(SBProcess self) -> SBBroadcaster""" |
| return _lldb.SBProcess_GetBroadcaster(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBProcess self, SBStream description) -> bool""" |
| return _lldb.SBProcess_GetDescription(self, description) |
| |
| def GetExtendedCrashInformation(self) -> "lldb::SBStructuredData": |
| r""" |
| |
| Returns the process' extended crash information. |
| """ |
| return _lldb.SBProcess_GetExtendedCrashInformation(self) |
| |
| def GetNumSupportedHardwareWatchpoints(self, error: "SBError") -> "uint32_t": |
| r"""GetNumSupportedHardwareWatchpoints(SBProcess self, SBError error) -> uint32_t""" |
| return _lldb.SBProcess_GetNumSupportedHardwareWatchpoints(self, error) |
| |
| def LoadImage(self, image_spec: "SBFileSpec", error: "SBError") -> "uint32_t": |
| r"""LoadImage(SBProcess self, SBFileSpec image_spec, SBError error) -> uint32_t""" |
| return _lldb.SBProcess_LoadImage(self, image_spec, error) |
| |
| def LoadImageUsingPaths(self, image_spec: "SBFileSpec", paths: "SBStringList", loaded_path: "SBFileSpec", error: "SBError") -> "uint32_t": |
| r""" |
| |
| Load the library whose filename is given by image_spec looking in all the |
| paths supplied in the paths argument. If successful, return a token that |
| can be passed to UnloadImage and fill loaded_path with the path that was |
| successfully loaded. On failure, return |
| lldb.LLDB_INVALID_IMAGE_TOKEN. |
| """ |
| return _lldb.SBProcess_LoadImageUsingPaths(self, image_spec, paths, loaded_path, error) |
| |
| def UnloadImage(self, image_token: "uint32_t") -> "lldb::SBError": |
| r"""UnloadImage(SBProcess self, uint32_t image_token) -> SBError""" |
| return _lldb.SBProcess_UnloadImage(self, image_token) |
| |
| def SendEventData(self, event_data: "char const *") -> "lldb::SBError": |
| r"""SendEventData(SBProcess self, char const * event_data) -> SBError""" |
| return _lldb.SBProcess_SendEventData(self, event_data) |
| |
| def GetNumExtendedBacktraceTypes(self) -> "uint32_t": |
| r""" |
| |
| Return the number of different thread-origin extended backtraces |
| this process can support as a uint32_t. |
| When the process is stopped and you have an SBThread, lldb may be |
| able to show a backtrace of when that thread was originally created, |
| or the work item was enqueued to it (in the case of a libdispatch |
| queue). |
| """ |
| return _lldb.SBProcess_GetNumExtendedBacktraceTypes(self) |
| |
| def GetExtendedBacktraceTypeAtIndex(self, idx: "uint32_t") -> "char const *": |
| r""" |
| |
| Takes an index argument, returns the name of one of the thread-origin |
| extended backtrace methods as a str. |
| """ |
| return _lldb.SBProcess_GetExtendedBacktraceTypeAtIndex(self, idx) |
| |
| def GetHistoryThreads(self, addr: "lldb::addr_t") -> "lldb::SBThreadCollection": |
| r"""GetHistoryThreads(SBProcess self, lldb::addr_t addr) -> SBThreadCollection""" |
| return _lldb.SBProcess_GetHistoryThreads(self, addr) |
| |
| def IsInstrumentationRuntimePresent(self, type: "lldb::InstrumentationRuntimeType") -> "bool": |
| r"""IsInstrumentationRuntimePresent(SBProcess self, lldb::InstrumentationRuntimeType type) -> bool""" |
| return _lldb.SBProcess_IsInstrumentationRuntimePresent(self, type) |
| |
| def SaveCore(self, file_name: "char const *") -> "lldb::SBError": |
| r"""SaveCore(SBProcess self, char const * file_name) -> SBError""" |
| return _lldb.SBProcess_SaveCore(self, file_name) |
| |
| def GetMemoryRegionInfo(self, load_addr: "lldb::addr_t", region_info: "SBMemoryRegionInfo") -> "lldb::SBError": |
| r"""GetMemoryRegionInfo(SBProcess self, lldb::addr_t load_addr, SBMemoryRegionInfo region_info) -> SBError""" |
| return _lldb.SBProcess_GetMemoryRegionInfo(self, load_addr, region_info) |
| |
| def GetMemoryRegions(self) -> "lldb::SBMemoryRegionInfoList": |
| r"""GetMemoryRegions(SBProcess self) -> SBMemoryRegionInfoList""" |
| return _lldb.SBProcess_GetMemoryRegions(self) |
| |
| def GetProcessInfo(self) -> "lldb::SBProcessInfo": |
| r""" |
| |
| Get information about the process. |
| Valid process info will only be returned when the process is alive, |
| use IsValid() to check if the info returned is valid. :: |
| |
| process_info = process.GetProcessInfo() |
| if process_info.IsValid(): |
| process_info.GetProcessID() |
| """ |
| return _lldb.SBProcess_GetProcessInfo(self) |
| |
| def AllocateMemory(self, size: "size_t", permissions: "uint32_t", error: "SBError") -> "lldb::addr_t": |
| r""" |
| |
| Allocates a block of memory within the process, with size and |
| access permissions specified in the arguments. The permisssions |
| argument is an or-combination of zero or more of |
| lldb.ePermissionsWritable, lldb.ePermissionsReadable, and |
| lldb.ePermissionsExecutable. Returns the address |
| of the allocated buffer in the process, or |
| lldb.LLDB_INVALID_ADDRESS if the allocation failed. |
| """ |
| return _lldb.SBProcess_AllocateMemory(self, size, permissions, error) |
| |
| def DeallocateMemory(self, ptr: "lldb::addr_t") -> "lldb::SBError": |
| r""" |
| |
| Deallocates the block of memory (previously allocated using |
| AllocateMemory) given in the argument. |
| """ |
| return _lldb.SBProcess_DeallocateMemory(self, ptr) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBProcess self) -> std::string""" |
| return _lldb.SBProcess___str__(self) |
| |
| def __get_is_alive__(self): |
| '''Returns "True" if the process is currently alive, "False" otherwise''' |
| s = self.GetState() |
| if (s == eStateAttaching or |
| s == eStateLaunching or |
| s == eStateStopped or |
| s == eStateRunning or |
| s == eStateStepping or |
| s == eStateCrashed or |
| s == eStateSuspended): |
| return True |
| return False |
| |
| def __get_is_running__(self): |
| '''Returns "True" if the process is currently running, "False" otherwise''' |
| state = self.GetState() |
| if state == eStateRunning or state == eStateStepping: |
| return True |
| return False |
| |
| def __get_is_stopped__(self): |
| '''Returns "True" if the process is currently stopped, "False" otherwise''' |
| state = self.GetState() |
| if state == eStateStopped or state == eStateCrashed or state == eStateSuspended: |
| return True |
| return False |
| |
| class threads_access(object): |
| '''A helper object that will lazily hand out thread for a process when supplied an index.''' |
| def __init__(self, sbprocess): |
| self.sbprocess = sbprocess |
| |
| def __len__(self): |
| if self.sbprocess: |
| return int(self.sbprocess.GetNumThreads()) |
| return 0 |
| |
| def __getitem__(self, key): |
| if type(key) is int and key < len(self): |
| return self.sbprocess.GetThreadAtIndex(key) |
| return None |
| |
| def get_threads_access_object(self): |
| '''An accessor function that returns a modules_access() object which allows lazy thread access from a lldb.SBProcess object.''' |
| return self.threads_access (self) |
| |
| def get_process_thread_list(self): |
| '''An accessor function that returns a list() that contains all threads in a lldb.SBProcess object.''' |
| threads = [] |
| accessor = self.get_threads_access_object() |
| for idx in range(len(accessor)): |
| threads.append(accessor[idx]) |
| return threads |
| |
| def __iter__(self): |
| '''Iterate over all threads in a lldb.SBProcess object.''' |
| return lldb_iter(self, 'GetNumThreads', 'GetThreadAtIndex') |
| |
| def __len__(self): |
| '''Return the number of threads in a lldb.SBProcess object.''' |
| return self.GetNumThreads() |
| |
| |
| threads = property(get_process_thread_list, None, doc='''A read only property that returns a list() of lldb.SBThread objects for this process.''') |
| thread = property(get_threads_access_object, None, doc='''A read only property that returns an object that can access threads by thread index (thread = lldb.process.thread[12]).''') |
| is_alive = property(__get_is_alive__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently alive.''') |
| is_running = property(__get_is_running__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently running.''') |
| is_stopped = property(__get_is_stopped__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently stopped.''') |
| id = property(GetProcessID, None, doc='''A read only property that returns the process ID as an integer.''') |
| target = property(GetTarget, None, doc='''A read only property that an lldb object that represents the target (lldb.SBTarget) that owns this process.''') |
| num_threads = property(GetNumThreads, None, doc='''A read only property that returns the number of threads in this process as an integer.''') |
| selected_thread = property(GetSelectedThread, SetSelectedThread, doc='''A read/write property that gets/sets the currently selected thread in this process. The getter returns a lldb.SBThread object and the setter takes an lldb.SBThread object.''') |
| state = property(GetState, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eState") that represents the current state of this process (running, stopped, exited, etc.).''') |
| exit_state = property(GetExitStatus, None, doc='''A read only property that returns an exit status as an integer of this process when the process state is lldb.eStateExited.''') |
| exit_description = property(GetExitDescription, None, doc='''A read only property that returns an exit description as a string of this process when the process state is lldb.eStateExited.''') |
| broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this process.''') |
| |
| |
| # Register SBProcess in _lldb: |
| _lldb.SBProcess_swigregister(SBProcess) |
| |
| def SBProcess_GetBroadcasterClassName() -> "char const *": |
| r"""SBProcess_GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBProcess_GetBroadcasterClassName() |
| |
| def SBProcess_GetStateFromEvent(event: "SBEvent") -> "lldb::StateType": |
| r"""SBProcess_GetStateFromEvent(SBEvent event) -> lldb::StateType""" |
| return _lldb.SBProcess_GetStateFromEvent(event) |
| |
| def SBProcess_GetRestartedFromEvent(event: "SBEvent") -> "bool": |
| r"""SBProcess_GetRestartedFromEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_GetRestartedFromEvent(event) |
| |
| def SBProcess_GetNumRestartedReasonsFromEvent(event: "SBEvent") -> "size_t": |
| r"""SBProcess_GetNumRestartedReasonsFromEvent(SBEvent event) -> size_t""" |
| return _lldb.SBProcess_GetNumRestartedReasonsFromEvent(event) |
| |
| def SBProcess_GetRestartedReasonAtIndexFromEvent(event: "SBEvent", idx: "size_t") -> "char const *": |
| r"""SBProcess_GetRestartedReasonAtIndexFromEvent(SBEvent event, size_t idx) -> char const *""" |
| return _lldb.SBProcess_GetRestartedReasonAtIndexFromEvent(event, idx) |
| |
| def SBProcess_GetProcessFromEvent(event: "SBEvent") -> "lldb::SBProcess": |
| r"""SBProcess_GetProcessFromEvent(SBEvent event) -> SBProcess""" |
| return _lldb.SBProcess_GetProcessFromEvent(event) |
| |
| def SBProcess_GetInterruptedFromEvent(event: "SBEvent") -> "bool": |
| r"""SBProcess_GetInterruptedFromEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_GetInterruptedFromEvent(event) |
| |
| def SBProcess_GetStructuredDataFromEvent(event: "SBEvent") -> "lldb::SBStructuredData": |
| r"""SBProcess_GetStructuredDataFromEvent(SBEvent event) -> SBStructuredData""" |
| return _lldb.SBProcess_GetStructuredDataFromEvent(event) |
| |
| def SBProcess_EventIsProcessEvent(event: "SBEvent") -> "bool": |
| r"""SBProcess_EventIsProcessEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_EventIsProcessEvent(event) |
| |
| def SBProcess_EventIsStructuredDataEvent(event: "SBEvent") -> "bool": |
| r"""SBProcess_EventIsStructuredDataEvent(SBEvent event) -> bool""" |
| return _lldb.SBProcess_EventIsStructuredDataEvent(event) |
| |
| class SBProcessInfo(object): |
| r""" |
| Describes an existing process and any discoverable information that pertains to |
| that process. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBProcessInfo self) -> SBProcessInfo |
| __init__(SBProcessInfo self, SBProcessInfo rhs) -> SBProcessInfo |
| """ |
| _lldb.SBProcessInfo_swiginit(self, _lldb.new_SBProcessInfo(*args)) |
| __swig_destroy__ = _lldb.delete_SBProcessInfo |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBProcessInfo self) -> bool""" |
| return _lldb.SBProcessInfo_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBProcessInfo___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBProcessInfo self) -> char const *""" |
| return _lldb.SBProcessInfo_GetName(self) |
| |
| def GetExecutableFile(self) -> "lldb::SBFileSpec": |
| r"""GetExecutableFile(SBProcessInfo self) -> SBFileSpec""" |
| return _lldb.SBProcessInfo_GetExecutableFile(self) |
| |
| def GetProcessID(self) -> "lldb::pid_t": |
| r"""GetProcessID(SBProcessInfo self) -> lldb::pid_t""" |
| return _lldb.SBProcessInfo_GetProcessID(self) |
| |
| def GetUserID(self) -> "uint32_t": |
| r"""GetUserID(SBProcessInfo self) -> uint32_t""" |
| return _lldb.SBProcessInfo_GetUserID(self) |
| |
| def GetGroupID(self) -> "uint32_t": |
| r"""GetGroupID(SBProcessInfo self) -> uint32_t""" |
| return _lldb.SBProcessInfo_GetGroupID(self) |
| |
| def UserIDIsValid(self) -> "bool": |
| r"""UserIDIsValid(SBProcessInfo self) -> bool""" |
| return _lldb.SBProcessInfo_UserIDIsValid(self) |
| |
| def GroupIDIsValid(self) -> "bool": |
| r"""GroupIDIsValid(SBProcessInfo self) -> bool""" |
| return _lldb.SBProcessInfo_GroupIDIsValid(self) |
| |
| def GetEffectiveUserID(self) -> "uint32_t": |
| r"""GetEffectiveUserID(SBProcessInfo self) -> uint32_t""" |
| return _lldb.SBProcessInfo_GetEffectiveUserID(self) |
| |
| def GetEffectiveGroupID(self) -> "uint32_t": |
| r"""GetEffectiveGroupID(SBProcessInfo self) -> uint32_t""" |
| return _lldb.SBProcessInfo_GetEffectiveGroupID(self) |
| |
| def EffectiveUserIDIsValid(self) -> "bool": |
| r"""EffectiveUserIDIsValid(SBProcessInfo self) -> bool""" |
| return _lldb.SBProcessInfo_EffectiveUserIDIsValid(self) |
| |
| def EffectiveGroupIDIsValid(self) -> "bool": |
| r"""EffectiveGroupIDIsValid(SBProcessInfo self) -> bool""" |
| return _lldb.SBProcessInfo_EffectiveGroupIDIsValid(self) |
| |
| def GetParentProcessID(self) -> "lldb::pid_t": |
| r"""GetParentProcessID(SBProcessInfo self) -> lldb::pid_t""" |
| return _lldb.SBProcessInfo_GetParentProcessID(self) |
| |
| def GetTriple(self) -> "char const *": |
| r""" |
| GetTriple(SBProcessInfo self) -> char const * |
| Return the target triple (arch-vendor-os) for the described process. |
| """ |
| return _lldb.SBProcessInfo_GetTriple(self) |
| |
| # Register SBProcessInfo in _lldb: |
| _lldb.SBProcessInfo_swigregister(SBProcessInfo) |
| |
| class SBQueue(object): |
| r"""Represents a libdispatch queue in the process.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBQueue self) -> SBQueue |
| __init__(SBQueue self, lldb::QueueSP const & queue_sp) -> SBQueue |
| """ |
| _lldb.SBQueue_swiginit(self, _lldb.new_SBQueue(*args)) |
| __swig_destroy__ = _lldb.delete_SBQueue |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBQueue self) -> bool""" |
| return _lldb.SBQueue_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBQueue___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBQueue self)""" |
| return _lldb.SBQueue_Clear(self) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBQueue self) -> SBProcess""" |
| return _lldb.SBQueue_GetProcess(self) |
| |
| def GetQueueID(self) -> "lldb::queue_id_t": |
| r""" |
| |
| Returns an lldb::queue_id_t type unique identifier number for this |
| queue that will not be used by any other queue during this process' |
| execution. These ID numbers often start at 1 with the first |
| system-created queues and increment from there. |
| """ |
| return _lldb.SBQueue_GetQueueID(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBQueue self) -> char const *""" |
| return _lldb.SBQueue_GetName(self) |
| |
| def GetKind(self) -> "lldb::QueueKind": |
| r""" |
| |
| Returns an lldb::QueueKind enumerated value (e.g. eQueueKindUnknown, |
| eQueueKindSerial, eQueueKindConcurrent) describing the type of this |
| queue. |
| """ |
| return _lldb.SBQueue_GetKind(self) |
| |
| def GetIndexID(self) -> "uint32_t": |
| r"""GetIndexID(SBQueue self) -> uint32_t""" |
| return _lldb.SBQueue_GetIndexID(self) |
| |
| def GetNumThreads(self) -> "uint32_t": |
| r"""GetNumThreads(SBQueue self) -> uint32_t""" |
| return _lldb.SBQueue_GetNumThreads(self) |
| |
| def GetThreadAtIndex(self, arg2: "uint32_t") -> "lldb::SBThread": |
| r"""GetThreadAtIndex(SBQueue self, uint32_t arg2) -> SBThread""" |
| return _lldb.SBQueue_GetThreadAtIndex(self, arg2) |
| |
| def GetNumPendingItems(self) -> "uint32_t": |
| r"""GetNumPendingItems(SBQueue self) -> uint32_t""" |
| return _lldb.SBQueue_GetNumPendingItems(self) |
| |
| def GetPendingItemAtIndex(self, arg2: "uint32_t") -> "lldb::SBQueueItem": |
| r"""GetPendingItemAtIndex(SBQueue self, uint32_t arg2) -> SBQueueItem""" |
| return _lldb.SBQueue_GetPendingItemAtIndex(self, arg2) |
| |
| def GetNumRunningItems(self) -> "uint32_t": |
| r"""GetNumRunningItems(SBQueue self) -> uint32_t""" |
| return _lldb.SBQueue_GetNumRunningItems(self) |
| |
| # Register SBQueue in _lldb: |
| _lldb.SBQueue_swigregister(SBQueue) |
| |
| class SBQueueItem(object): |
| r"""This class represents an item in an :py:class:`SBQueue`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBQueueItem self) -> SBQueueItem |
| __init__(SBQueueItem self, lldb::QueueItemSP const & queue_item_sp) -> SBQueueItem |
| """ |
| _lldb.SBQueueItem_swiginit(self, _lldb.new_SBQueueItem(*args)) |
| __swig_destroy__ = _lldb.delete_SBQueueItem |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBQueueItem self) -> bool""" |
| return _lldb.SBQueueItem_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBQueueItem___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBQueueItem self)""" |
| return _lldb.SBQueueItem_Clear(self) |
| |
| def GetKind(self) -> "lldb::QueueItemKind": |
| r"""GetKind(SBQueueItem self) -> lldb::QueueItemKind""" |
| return _lldb.SBQueueItem_GetKind(self) |
| |
| def SetKind(self, kind: "lldb::QueueItemKind") -> "void": |
| r"""SetKind(SBQueueItem self, lldb::QueueItemKind kind)""" |
| return _lldb.SBQueueItem_SetKind(self, kind) |
| |
| def GetAddress(self) -> "lldb::SBAddress": |
| r"""GetAddress(SBQueueItem self) -> SBAddress""" |
| return _lldb.SBQueueItem_GetAddress(self) |
| |
| def SetAddress(self, addr: "SBAddress") -> "void": |
| r"""SetAddress(SBQueueItem self, SBAddress addr)""" |
| return _lldb.SBQueueItem_SetAddress(self, addr) |
| |
| def SetQueueItem(self, queue_item_sp: "lldb::QueueItemSP const &") -> "void": |
| r"""SetQueueItem(SBQueueItem self, lldb::QueueItemSP const & queue_item_sp)""" |
| return _lldb.SBQueueItem_SetQueueItem(self, queue_item_sp) |
| |
| def GetExtendedBacktraceThread(self, type: "char const *") -> "lldb::SBThread": |
| r"""GetExtendedBacktraceThread(SBQueueItem self, char const * type) -> SBThread""" |
| return _lldb.SBQueueItem_GetExtendedBacktraceThread(self, type) |
| |
| # Register SBQueueItem in _lldb: |
| _lldb.SBQueueItem_swigregister(SBQueueItem) |
| |
| class SBReproducer(object): |
| r"""Controls LLDB's reproducer functionality.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def Capture(path: "char const *") -> "char const *": |
| r"""Capture(char const * path) -> char const *""" |
| return _lldb.SBReproducer_Capture(path) |
| |
| @staticmethod |
| def PassiveReplay(path: "char const *") -> "char const *": |
| r"""PassiveReplay(char const * path) -> char const *""" |
| return _lldb.SBReproducer_PassiveReplay(path) |
| |
| @staticmethod |
| def SetAutoGenerate(b: "bool") -> "bool": |
| r"""SetAutoGenerate(bool b) -> bool""" |
| return _lldb.SBReproducer_SetAutoGenerate(b) |
| |
| @staticmethod |
| def SetWorkingDirectory(path: "char const *") -> "void": |
| r"""SetWorkingDirectory(char const * path)""" |
| return _lldb.SBReproducer_SetWorkingDirectory(path) |
| |
| def __init__(self): |
| r"""__init__(SBReproducer self) -> SBReproducer""" |
| _lldb.SBReproducer_swiginit(self, _lldb.new_SBReproducer()) |
| __swig_destroy__ = _lldb.delete_SBReproducer |
| |
| # Register SBReproducer in _lldb: |
| _lldb.SBReproducer_swigregister(SBReproducer) |
| |
| def SBReproducer_Capture(path: "char const *") -> "char const *": |
| r"""SBReproducer_Capture(char const * path) -> char const *""" |
| return _lldb.SBReproducer_Capture(path) |
| |
| def SBReproducer_PassiveReplay(path: "char const *") -> "char const *": |
| r"""SBReproducer_PassiveReplay(char const * path) -> char const *""" |
| return _lldb.SBReproducer_PassiveReplay(path) |
| |
| def SBReproducer_SetAutoGenerate(b: "bool") -> "bool": |
| r"""SBReproducer_SetAutoGenerate(bool b) -> bool""" |
| return _lldb.SBReproducer_SetAutoGenerate(b) |
| |
| def SBReproducer_SetWorkingDirectory(path: "char const *") -> "void": |
| r"""SBReproducer_SetWorkingDirectory(char const * path)""" |
| return _lldb.SBReproducer_SetWorkingDirectory(path) |
| |
| class SBSection(object): |
| r""" |
| Represents an executable image section. |
| |
| SBSection supports iteration through its subsection, represented as SBSection |
| as well. For example, :: |
| |
| for sec in exe_module: |
| if sec.GetName() == '__TEXT': |
| print sec |
| break |
| print INDENT + 'Number of subsections: %d' % sec.GetNumSubSections() |
| for subsec in sec: |
| print INDENT + repr(subsec) |
| |
| produces: :: |
| |
| [0x0000000100000000-0x0000000100002000) a.out.__TEXT |
| Number of subsections: 6 |
| [0x0000000100001780-0x0000000100001d5c) a.out.__TEXT.__text |
| [0x0000000100001d5c-0x0000000100001da4) a.out.__TEXT.__stubs |
| [0x0000000100001da4-0x0000000100001e2c) a.out.__TEXT.__stub_helper |
| [0x0000000100001e2c-0x0000000100001f10) a.out.__TEXT.__cstring |
| [0x0000000100001f10-0x0000000100001f68) a.out.__TEXT.__unwind_info |
| [0x0000000100001f68-0x0000000100001ff8) a.out.__TEXT.__eh_frame |
| |
| See also :py:class:`SBModule` . |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBSection self) -> SBSection |
| __init__(SBSection self, SBSection rhs) -> SBSection |
| """ |
| _lldb.SBSection_swiginit(self, _lldb.new_SBSection(*args)) |
| __swig_destroy__ = _lldb.delete_SBSection |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBSection self) -> bool""" |
| return _lldb.SBSection_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBSection___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBSection self) -> char const *""" |
| return _lldb.SBSection_GetName(self) |
| |
| def GetParent(self) -> "lldb::SBSection": |
| r"""GetParent(SBSection self) -> SBSection""" |
| return _lldb.SBSection_GetParent(self) |
| |
| def FindSubSection(self, sect_name: "char const *") -> "lldb::SBSection": |
| r"""FindSubSection(SBSection self, char const * sect_name) -> SBSection""" |
| return _lldb.SBSection_FindSubSection(self, sect_name) |
| |
| def GetNumSubSections(self) -> "size_t": |
| r"""GetNumSubSections(SBSection self) -> size_t""" |
| return _lldb.SBSection_GetNumSubSections(self) |
| |
| def GetSubSectionAtIndex(self, idx: "size_t") -> "lldb::SBSection": |
| r"""GetSubSectionAtIndex(SBSection self, size_t idx) -> SBSection""" |
| return _lldb.SBSection_GetSubSectionAtIndex(self, idx) |
| |
| def GetFileAddress(self) -> "lldb::addr_t": |
| r"""GetFileAddress(SBSection self) -> lldb::addr_t""" |
| return _lldb.SBSection_GetFileAddress(self) |
| |
| def GetLoadAddress(self, target: "SBTarget") -> "lldb::addr_t": |
| r"""GetLoadAddress(SBSection self, SBTarget target) -> lldb::addr_t""" |
| return _lldb.SBSection_GetLoadAddress(self, target) |
| |
| def GetByteSize(self) -> "lldb::addr_t": |
| r"""GetByteSize(SBSection self) -> lldb::addr_t""" |
| return _lldb.SBSection_GetByteSize(self) |
| |
| def GetFileOffset(self) -> "uint64_t": |
| r"""GetFileOffset(SBSection self) -> uint64_t""" |
| return _lldb.SBSection_GetFileOffset(self) |
| |
| def GetFileByteSize(self) -> "uint64_t": |
| r"""GetFileByteSize(SBSection self) -> uint64_t""" |
| return _lldb.SBSection_GetFileByteSize(self) |
| |
| def GetSectionData(self, *args) -> "lldb::SBData": |
| r""" |
| GetSectionData(SBSection self) -> SBData |
| GetSectionData(SBSection self, uint64_t offset, uint64_t size) -> SBData |
| """ |
| return _lldb.SBSection_GetSectionData(self, *args) |
| |
| def GetSectionType(self) -> "lldb::SectionType": |
| r"""GetSectionType(SBSection self) -> lldb::SectionType""" |
| return _lldb.SBSection_GetSectionType(self) |
| |
| def GetPermissions(self) -> "uint32_t": |
| r"""GetPermissions(SBSection self) -> uint32_t""" |
| return _lldb.SBSection_GetPermissions(self) |
| |
| def GetTargetByteSize(self) -> "uint32_t": |
| r""" |
| GetTargetByteSize(SBSection self) -> uint32_t |
| |
| Return the size of a target's byte represented by this section |
| in numbers of host bytes. Note that certain architectures have |
| varying minimum addressable unit (i.e. byte) size for their |
| CODE or DATA buses. |
| |
| @return |
| The number of host (8-bit) bytes needed to hold a target byte |
| """ |
| return _lldb.SBSection_GetTargetByteSize(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBSection self, SBStream description) -> bool""" |
| return _lldb.SBSection_GetDescription(self, description) |
| |
| def __eq__(self, rhs: "SBSection") -> "bool": |
| r"""__eq__(SBSection self, SBSection rhs) -> bool""" |
| return _lldb.SBSection___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBSection") -> "bool": |
| r"""__ne__(SBSection self, SBSection rhs) -> bool""" |
| return _lldb.SBSection___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBSection self) -> std::string""" |
| return _lldb.SBSection___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all subsections in a lldb.SBSection object.''' |
| return lldb_iter(self, 'GetNumSubSections', 'GetSubSectionAtIndex') |
| |
| def __len__(self): |
| '''Return the number of subsections in a lldb.SBSection object.''' |
| return self.GetNumSubSections() |
| |
| def get_addr(self): |
| return SBAddress(self, 0) |
| |
| name = property(GetName, None, doc='''A read only property that returns the name of this section as a string.''') |
| addr = property(get_addr, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this section.''') |
| file_addr = property(GetFileAddress, None, doc='''A read only property that returns an integer that represents the starting "file" address for this section, or the address of the section in the object file in which it is defined.''') |
| size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this section as an integer.''') |
| file_offset = property(GetFileOffset, None, doc='''A read only property that returns the file offset in bytes of this section as an integer.''') |
| file_size = property(GetFileByteSize, None, doc='''A read only property that returns the file size in bytes of this section as an integer.''') |
| data = property(GetSectionData, None, doc='''A read only property that returns an lldb object that represents the bytes for this section (lldb.SBData) for this section.''') |
| type = property(GetSectionType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSectionType") that represents the type of this section (code, data, etc.).''') |
| target_byte_size = property(GetTargetByteSize, None, doc='''A read only property that returns the size of a target byte represented by this section as a number of host bytes.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBSection in _lldb: |
| _lldb.SBSection_swigregister(SBSection) |
| |
| class SBSourceManager(object): |
| r""" |
| 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]) |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, rhs: "SBSourceManager"): |
| r"""__init__(SBSourceManager self, SBSourceManager rhs) -> SBSourceManager""" |
| _lldb.SBSourceManager_swiginit(self, _lldb.new_SBSourceManager(rhs)) |
| __swig_destroy__ = _lldb.delete_SBSourceManager |
| |
| def DisplaySourceLinesWithLineNumbers(self, file: "SBFileSpec", line: "uint32_t", context_before: "uint32_t", context_after: "uint32_t", current_line_cstr: "char const *", s: "SBStream") -> "size_t": |
| r"""DisplaySourceLinesWithLineNumbers(SBSourceManager self, SBFileSpec file, uint32_t line, uint32_t context_before, uint32_t context_after, char const * current_line_cstr, SBStream s) -> size_t""" |
| return _lldb.SBSourceManager_DisplaySourceLinesWithLineNumbers(self, file, line, context_before, context_after, current_line_cstr, s) |
| |
| def DisplaySourceLinesWithLineNumbersAndColumn(self, file: "SBFileSpec", line: "uint32_t", column: "uint32_t", context_before: "uint32_t", context_after: "uint32_t", current_line_cstr: "char const *", s: "SBStream") -> "size_t": |
| r"""DisplaySourceLinesWithLineNumbersAndColumn(SBSourceManager self, SBFileSpec file, uint32_t line, uint32_t column, uint32_t context_before, uint32_t context_after, char const * current_line_cstr, SBStream s) -> size_t""" |
| return _lldb.SBSourceManager_DisplaySourceLinesWithLineNumbersAndColumn(self, file, line, column, context_before, context_after, current_line_cstr, s) |
| |
| # Register SBSourceManager in _lldb: |
| _lldb.SBSourceManager_swigregister(SBSourceManager) |
| |
| class SBStream(object): |
| r""" |
| Represents a destination for streaming data output to. By default, a string |
| stream is created. |
| |
| 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]) |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self): |
| r"""__init__(SBStream self) -> SBStream""" |
| _lldb.SBStream_swiginit(self, _lldb.new_SBStream()) |
| __swig_destroy__ = _lldb.delete_SBStream |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBStream self) -> bool""" |
| return _lldb.SBStream_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBStream___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetData(self) -> "char const *": |
| r""" |
| GetData(SBStream self) -> char const * |
| |
| If this stream is not redirected to a file, it will maintain a local |
| cache for the stream data which can be accessed using this accessor. |
| """ |
| return _lldb.SBStream_GetData(self) |
| |
| def GetSize(self) -> "size_t": |
| r""" |
| GetSize(SBStream self) -> size_t |
| |
| If this stream is not redirected to a file, it will maintain a local |
| cache for the stream output whose length can be accessed using this |
| accessor. |
| """ |
| return _lldb.SBStream_GetSize(self) |
| |
| def Print(self, str: "char const *") -> "void": |
| r"""Print(SBStream self, char const * str)""" |
| return _lldb.SBStream_Print(self, str) |
| |
| def RedirectToFile(self, *args) -> "void": |
| r""" |
| RedirectToFile(SBStream self, char const * path, bool append) |
| RedirectToFile(SBStream self, SBFile file) |
| RedirectToFile(SBStream self, lldb::FileSP file) |
| """ |
| return _lldb.SBStream_RedirectToFile(self, *args) |
| |
| def RedirectToFileHandle(self, file: "lldb::FileSP", transfer_fh_ownership: "bool") -> "void": |
| r"""DEPRECATED, use RedirectToFile""" |
| return _lldb.SBStream_RedirectToFileHandle(self, file, transfer_fh_ownership) |
| |
| def RedirectToFileDescriptor(self, fd: "int", transfer_fh_ownership: "bool") -> "void": |
| r"""DEPRECATED, use RedirectToFile""" |
| return _lldb.SBStream_RedirectToFileDescriptor(self, fd, transfer_fh_ownership) |
| |
| def Clear(self) -> "void": |
| r""" |
| DEPRECATED, use RedirectToFile |
| |
| If the stream is redirected to a file, forget about the file and if |
| ownership of the file was transferred to this object, close the file. |
| If the stream is backed by a local cache, clear this cache. |
| """ |
| return _lldb.SBStream_Clear(self) |
| |
| def write(self, str: "char const *") -> "void": |
| r"""DEPRECATED, use RedirectToFile""" |
| return _lldb.SBStream_write(self, str) |
| |
| def flush(self) -> "void": |
| r"""DEPRECATED, use RedirectToFile""" |
| return _lldb.SBStream_flush(self) |
| |
| # Register SBStream in _lldb: |
| _lldb.SBStream_swigregister(SBStream) |
| |
| class SBStringList(object): |
| r"""Represents a list of strings.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBStringList self) -> SBStringList |
| __init__(SBStringList self, SBStringList rhs) -> SBStringList |
| """ |
| _lldb.SBStringList_swiginit(self, _lldb.new_SBStringList(*args)) |
| __swig_destroy__ = _lldb.delete_SBStringList |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBStringList self) -> bool""" |
| return _lldb.SBStringList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBStringList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def AppendString(self, str: "char const *") -> "void": |
| r"""AppendString(SBStringList self, char const * str)""" |
| return _lldb.SBStringList_AppendString(self, str) |
| |
| def AppendList(self, *args) -> "void": |
| r""" |
| AppendList(SBStringList self, char const ** strv, int strc) |
| AppendList(SBStringList self, SBStringList strings) |
| """ |
| return _lldb.SBStringList_AppendList(self, *args) |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBStringList self) -> uint32_t""" |
| return _lldb.SBStringList_GetSize(self) |
| |
| def GetStringAtIndex(self, idx: "size_t") -> "char const *": |
| r"""GetStringAtIndex(SBStringList self, size_t idx) -> char const *""" |
| return _lldb.SBStringList_GetStringAtIndex(self, idx) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBStringList self)""" |
| return _lldb.SBStringList_Clear(self) |
| |
| def __iter__(self): |
| '''Iterate over all strings in a lldb.SBStringList object.''' |
| return lldb_iter(self, 'GetSize', 'GetStringAtIndex') |
| |
| def __len__(self): |
| '''Return the number of strings in a lldb.SBStringList object.''' |
| return self.GetSize() |
| |
| |
| # Register SBStringList in _lldb: |
| _lldb.SBStringList_swigregister(SBStringList) |
| |
| class SBStructuredData(object): |
| r""" |
| A class representing a StructuredData event. |
| |
| This class wraps the event type generated by StructuredData features. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBStructuredData self) -> SBStructuredData |
| __init__(SBStructuredData self, SBStructuredData rhs) -> SBStructuredData |
| __init__(SBStructuredData self, lldb::EventSP const & event_sp) -> SBStructuredData |
| """ |
| _lldb.SBStructuredData_swiginit(self, _lldb.new_SBStructuredData(*args)) |
| __swig_destroy__ = _lldb.delete_SBStructuredData |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBStructuredData self) -> bool""" |
| return _lldb.SBStructuredData_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBStructuredData___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBStructuredData self)""" |
| return _lldb.SBStructuredData_Clear(self) |
| |
| def GetType(self) -> "lldb::StructuredDataType": |
| r"""GetType(SBStructuredData self) -> lldb::StructuredDataType""" |
| return _lldb.SBStructuredData_GetType(self) |
| |
| def GetSize(self) -> "size_t": |
| r"""GetSize(SBStructuredData self) -> size_t""" |
| return _lldb.SBStructuredData_GetSize(self) |
| |
| def GetKeys(self, keys: "SBStringList") -> "bool": |
| r"""GetKeys(SBStructuredData self, SBStringList keys) -> bool""" |
| return _lldb.SBStructuredData_GetKeys(self, keys) |
| |
| def GetValueForKey(self, key: "char const *") -> "lldb::SBStructuredData": |
| r"""GetValueForKey(SBStructuredData self, char const * key) -> SBStructuredData""" |
| return _lldb.SBStructuredData_GetValueForKey(self, key) |
| |
| def GetItemAtIndex(self, idx: "size_t") -> "lldb::SBStructuredData": |
| r"""GetItemAtIndex(SBStructuredData self, size_t idx) -> SBStructuredData""" |
| return _lldb.SBStructuredData_GetItemAtIndex(self, idx) |
| |
| def GetIntegerValue(self, fail_value: "uint64_t"=0) -> "uint64_t": |
| r"""GetIntegerValue(SBStructuredData self, uint64_t fail_value=0) -> uint64_t""" |
| return _lldb.SBStructuredData_GetIntegerValue(self, fail_value) |
| |
| def GetFloatValue(self, fail_value: "double"=0.0) -> "double": |
| r"""GetFloatValue(SBStructuredData self, double fail_value=0.0) -> double""" |
| return _lldb.SBStructuredData_GetFloatValue(self, fail_value) |
| |
| def GetBooleanValue(self, fail_value: "bool"=False) -> "bool": |
| r"""GetBooleanValue(SBStructuredData self, bool fail_value=False) -> bool""" |
| return _lldb.SBStructuredData_GetBooleanValue(self, fail_value) |
| |
| def GetStringValue(self, dst: "char *") -> "size_t": |
| r"""GetStringValue(SBStructuredData self, char * dst) -> size_t""" |
| return _lldb.SBStructuredData_GetStringValue(self, dst) |
| |
| def GetAsJSON(self, stream: "SBStream") -> "lldb::SBError": |
| r"""GetAsJSON(SBStructuredData self, SBStream stream) -> SBError""" |
| return _lldb.SBStructuredData_GetAsJSON(self, stream) |
| |
| def GetDescription(self, stream: "SBStream") -> "lldb::SBError": |
| r"""GetDescription(SBStructuredData self, SBStream stream) -> SBError""" |
| return _lldb.SBStructuredData_GetDescription(self, stream) |
| |
| def SetFromJSON(self, *args) -> "lldb::SBError": |
| r""" |
| SetFromJSON(SBStructuredData self, SBStream stream) -> SBError |
| SetFromJSON(SBStructuredData self, char const * json) -> SBError |
| """ |
| return _lldb.SBStructuredData_SetFromJSON(self, *args) |
| |
| # Register SBStructuredData in _lldb: |
| _lldb.SBStructuredData_swigregister(SBStructuredData) |
| |
| class SBSymbol(object): |
| r""" |
| Represents the symbol possibly associated with a stack frame. |
| :py:class:`SBModule` contains SBSymbol(s). SBSymbol can also be retrieved from :py:class:`SBFrame` . |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| __swig_destroy__ = _lldb.delete_SBSymbol |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBSymbol self) -> SBSymbol |
| __init__(SBSymbol self, SBSymbol rhs) -> SBSymbol |
| """ |
| _lldb.SBSymbol_swiginit(self, _lldb.new_SBSymbol(*args)) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBSymbol self) -> bool""" |
| return _lldb.SBSymbol_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBSymbol___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBSymbol self) -> char const *""" |
| return _lldb.SBSymbol_GetName(self) |
| |
| def GetDisplayName(self) -> "char const *": |
| r"""GetDisplayName(SBSymbol self) -> char const *""" |
| return _lldb.SBSymbol_GetDisplayName(self) |
| |
| def GetMangledName(self) -> "char const *": |
| r"""GetMangledName(SBSymbol self) -> char const *""" |
| return _lldb.SBSymbol_GetMangledName(self) |
| |
| def GetInstructions(self, *args) -> "lldb::SBInstructionList": |
| r""" |
| GetInstructions(SBSymbol self, SBTarget target) -> SBInstructionList |
| GetInstructions(SBSymbol self, SBTarget target, char const * flavor_string) -> SBInstructionList |
| """ |
| return _lldb.SBSymbol_GetInstructions(self, *args) |
| |
| def GetStartAddress(self) -> "lldb::SBAddress": |
| r"""GetStartAddress(SBSymbol self) -> SBAddress""" |
| return _lldb.SBSymbol_GetStartAddress(self) |
| |
| def GetEndAddress(self) -> "lldb::SBAddress": |
| r"""GetEndAddress(SBSymbol self) -> SBAddress""" |
| return _lldb.SBSymbol_GetEndAddress(self) |
| |
| def GetPrologueByteSize(self) -> "uint32_t": |
| r"""GetPrologueByteSize(SBSymbol self) -> uint32_t""" |
| return _lldb.SBSymbol_GetPrologueByteSize(self) |
| |
| def GetType(self) -> "lldb::SymbolType": |
| r"""GetType(SBSymbol self) -> lldb::SymbolType""" |
| return _lldb.SBSymbol_GetType(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBSymbol self, SBStream description) -> bool""" |
| return _lldb.SBSymbol_GetDescription(self, description) |
| |
| def IsExternal(self) -> "bool": |
| r"""IsExternal(SBSymbol self) -> bool""" |
| return _lldb.SBSymbol_IsExternal(self) |
| |
| def IsSynthetic(self) -> "bool": |
| r"""IsSynthetic(SBSymbol self) -> bool""" |
| return _lldb.SBSymbol_IsSynthetic(self) |
| |
| def __eq__(self, rhs: "SBSymbol") -> "bool": |
| r"""__eq__(SBSymbol self, SBSymbol rhs) -> bool""" |
| return _lldb.SBSymbol___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBSymbol") -> "bool": |
| r"""__ne__(SBSymbol self, SBSymbol rhs) -> bool""" |
| return _lldb.SBSymbol___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBSymbol self) -> std::string""" |
| return _lldb.SBSymbol___str__(self) |
| |
| def get_instructions_from_current_target (self): |
| return self.GetInstructions (target) |
| |
| name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''') |
| mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''') |
| 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.''') |
| addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''') |
| 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.''') |
| prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''') |
| 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.''') |
| 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.''') |
| 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.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBSymbol in _lldb: |
| _lldb.SBSymbol_swigregister(SBSymbol) |
| |
| class SBSymbolContext(object): |
| r""" |
| A context object that provides access to core debugger entities. |
| |
| Many debugger functions require a context when doing lookups. This class |
| provides a common structure that can be used as the result of a query that |
| can contain a single result. |
| |
| For example, :: |
| |
| exe = os.path.join(os.getcwd(), 'a.out') |
| |
| # Create a target for the debugger. |
| target = self.dbg.CreateTarget(exe) |
| |
| # Now create a breakpoint on main.c by name 'c'. |
| breakpoint = target.BreakpointCreateByName('c', 'a.out') |
| |
| # Now launch the process, and do not stop at entry point. |
| process = target.LaunchSimple(None, None, os.getcwd()) |
| |
| # The inferior should stop on 'c'. |
| from lldbutil import get_stopped_thread |
| thread = get_stopped_thread(process, lldb.eStopReasonBreakpoint) |
| frame0 = thread.GetFrameAtIndex(0) |
| |
| # Now get the SBSymbolContext from this frame. We want everything. :-) |
| context = frame0.GetSymbolContext(lldb.eSymbolContextEverything) |
| |
| # Get the module. |
| module = context.GetModule() |
| ... |
| |
| # And the compile unit associated with the frame. |
| compileUnit = context.GetCompileUnit() |
| ... |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBSymbolContext self) -> SBSymbolContext |
| __init__(SBSymbolContext self, SBSymbolContext rhs) -> SBSymbolContext |
| """ |
| _lldb.SBSymbolContext_swiginit(self, _lldb.new_SBSymbolContext(*args)) |
| __swig_destroy__ = _lldb.delete_SBSymbolContext |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBSymbolContext self) -> bool""" |
| return _lldb.SBSymbolContext_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBSymbolContext___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetModule(self) -> "lldb::SBModule": |
| r"""GetModule(SBSymbolContext self) -> SBModule""" |
| return _lldb.SBSymbolContext_GetModule(self) |
| |
| def GetCompileUnit(self) -> "lldb::SBCompileUnit": |
| r"""GetCompileUnit(SBSymbolContext self) -> SBCompileUnit""" |
| return _lldb.SBSymbolContext_GetCompileUnit(self) |
| |
| def GetFunction(self) -> "lldb::SBFunction": |
| r"""GetFunction(SBSymbolContext self) -> SBFunction""" |
| return _lldb.SBSymbolContext_GetFunction(self) |
| |
| def GetBlock(self) -> "lldb::SBBlock": |
| r"""GetBlock(SBSymbolContext self) -> SBBlock""" |
| return _lldb.SBSymbolContext_GetBlock(self) |
| |
| def GetLineEntry(self) -> "lldb::SBLineEntry": |
| r"""GetLineEntry(SBSymbolContext self) -> SBLineEntry""" |
| return _lldb.SBSymbolContext_GetLineEntry(self) |
| |
| def GetSymbol(self) -> "lldb::SBSymbol": |
| r"""GetSymbol(SBSymbolContext self) -> SBSymbol""" |
| return _lldb.SBSymbolContext_GetSymbol(self) |
| |
| def SetModule(self, module: "SBModule") -> "void": |
| r"""SetModule(SBSymbolContext self, SBModule module)""" |
| return _lldb.SBSymbolContext_SetModule(self, module) |
| |
| def SetCompileUnit(self, compile_unit: "SBCompileUnit") -> "void": |
| r"""SetCompileUnit(SBSymbolContext self, SBCompileUnit compile_unit)""" |
| return _lldb.SBSymbolContext_SetCompileUnit(self, compile_unit) |
| |
| def SetFunction(self, function: "SBFunction") -> "void": |
| r"""SetFunction(SBSymbolContext self, SBFunction function)""" |
| return _lldb.SBSymbolContext_SetFunction(self, function) |
| |
| def SetBlock(self, block: "SBBlock") -> "void": |
| r"""SetBlock(SBSymbolContext self, SBBlock block)""" |
| return _lldb.SBSymbolContext_SetBlock(self, block) |
| |
| def SetLineEntry(self, line_entry: "SBLineEntry") -> "void": |
| r"""SetLineEntry(SBSymbolContext self, SBLineEntry line_entry)""" |
| return _lldb.SBSymbolContext_SetLineEntry(self, line_entry) |
| |
| def SetSymbol(self, symbol: "SBSymbol") -> "void": |
| r"""SetSymbol(SBSymbolContext self, SBSymbol symbol)""" |
| return _lldb.SBSymbolContext_SetSymbol(self, symbol) |
| |
| def GetParentOfInlinedScope(self, curr_frame_pc: "SBAddress", parent_frame_addr: "SBAddress") -> "lldb::SBSymbolContext": |
| r"""GetParentOfInlinedScope(SBSymbolContext self, SBAddress curr_frame_pc, SBAddress parent_frame_addr) -> SBSymbolContext""" |
| return _lldb.SBSymbolContext_GetParentOfInlinedScope(self, curr_frame_pc, parent_frame_addr) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBSymbolContext self, SBStream description) -> bool""" |
| return _lldb.SBSymbolContext_GetDescription(self, description) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBSymbolContext self) -> std::string""" |
| return _lldb.SBSymbolContext___str__(self) |
| |
| module = property(GetModule, SetModule, doc='''A read/write property that allows the getting/setting of the module (lldb.SBModule) in this symbol context.''') |
| compile_unit = property(GetCompileUnit, SetCompileUnit, doc='''A read/write property that allows the getting/setting of the compile unit (lldb.SBCompileUnit) in this symbol context.''') |
| function = property(GetFunction, SetFunction, doc='''A read/write property that allows the getting/setting of the function (lldb.SBFunction) in this symbol context.''') |
| block = property(GetBlock, SetBlock, doc='''A read/write property that allows the getting/setting of the block (lldb.SBBlock) in this symbol context.''') |
| symbol = property(GetSymbol, SetSymbol, doc='''A read/write property that allows the getting/setting of the symbol (lldb.SBSymbol) in this symbol context.''') |
| line_entry = property(GetLineEntry, SetLineEntry, doc='''A read/write property that allows the getting/setting of the line entry (lldb.SBLineEntry) in this symbol context.''') |
| |
| |
| # Register SBSymbolContext in _lldb: |
| _lldb.SBSymbolContext_swigregister(SBSymbolContext) |
| |
| class SBSymbolContextList(object): |
| r""" |
| Represents a list of symbol context object. See also SBSymbolContext. |
| |
| For example (from test/python_api/target/TestTargetAPI.py), :: |
| |
| def find_functions(self, exe_name): |
| '''Exercise SBTarget.FindFunctions() API.''' |
| exe = os.path.join(os.getcwd(), exe_name) |
| |
| # Create a target by the debugger. |
| target = self.dbg.CreateTarget(exe) |
| self.assertTrue(target, VALID_TARGET) |
| |
| list = lldb.SBSymbolContextList() |
| num = target.FindFunctions('c', lldb.eFunctionNameTypeAuto, False, list) |
| self.assertTrue(num == 1 and list.GetSize() == 1) |
| |
| for sc in list: |
| self.assertTrue(sc.GetModule().GetFileSpec().GetFilename() == exe_name) |
| self.assertTrue(sc.GetSymbol().GetName() == 'c') |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBSymbolContextList self) -> SBSymbolContextList |
| __init__(SBSymbolContextList self, SBSymbolContextList rhs) -> SBSymbolContextList |
| """ |
| _lldb.SBSymbolContextList_swiginit(self, _lldb.new_SBSymbolContextList(*args)) |
| __swig_destroy__ = _lldb.delete_SBSymbolContextList |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBSymbolContextList self) -> bool""" |
| return _lldb.SBSymbolContextList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBSymbolContextList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBSymbolContextList self) -> uint32_t""" |
| return _lldb.SBSymbolContextList_GetSize(self) |
| |
| def GetContextAtIndex(self, idx: "uint32_t") -> "lldb::SBSymbolContext": |
| r"""GetContextAtIndex(SBSymbolContextList self, uint32_t idx) -> SBSymbolContext""" |
| return _lldb.SBSymbolContextList_GetContextAtIndex(self, idx) |
| |
| def Append(self, *args) -> "void": |
| r""" |
| Append(SBSymbolContextList self, SBSymbolContext sc) |
| Append(SBSymbolContextList self, SBSymbolContextList sc_list) |
| """ |
| return _lldb.SBSymbolContextList_Append(self, *args) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBSymbolContextList self, SBStream description) -> bool""" |
| return _lldb.SBSymbolContextList_GetDescription(self, description) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBSymbolContextList self)""" |
| return _lldb.SBSymbolContextList_Clear(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBSymbolContextList self) -> std::string""" |
| return _lldb.SBSymbolContextList___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all symbol contexts in a lldb.SBSymbolContextList |
| object.''' |
| return lldb_iter(self, 'GetSize', 'GetContextAtIndex') |
| |
| def __len__(self): |
| return int(self.GetSize()) |
| |
| def __getitem__(self, key): |
| count = len(self) |
| if type(key) is int: |
| if key < count: |
| return self.GetContextAtIndex(key) |
| else: |
| raise IndexError |
| raise TypeError |
| |
| def get_module_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).module |
| if obj: |
| a.append(obj) |
| return a |
| |
| def get_compile_unit_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).compile_unit |
| if obj: |
| a.append(obj) |
| return a |
| def get_function_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).function |
| if obj: |
| a.append(obj) |
| return a |
| def get_block_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).block |
| if obj: |
| a.append(obj) |
| return a |
| def get_symbol_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).symbol |
| if obj: |
| a.append(obj) |
| return a |
| def get_line_entry_array(self): |
| a = [] |
| for i in range(len(self)): |
| obj = self.GetContextAtIndex(i).line_entry |
| if obj: |
| a.append(obj) |
| return a |
| |
| modules = property(get_module_array, None, doc='''Returns a list() of lldb.SBModule objects, one for each module in each SBSymbolContext object in this list.''') |
| compile_units = property(get_compile_unit_array, None, doc='''Returns a list() of lldb.SBCompileUnit objects, one for each compile unit in each SBSymbolContext object in this list.''') |
| functions = property(get_function_array, None, doc='''Returns a list() of lldb.SBFunction objects, one for each function in each SBSymbolContext object in this list.''') |
| blocks = property(get_block_array, None, doc='''Returns a list() of lldb.SBBlock objects, one for each block in each SBSymbolContext object in this list.''') |
| line_entries = property(get_line_entry_array, None, doc='''Returns a list() of lldb.SBLineEntry objects, one for each line entry in each SBSymbolContext object in this list.''') |
| symbols = property(get_symbol_array, None, doc='''Returns a list() of lldb.SBSymbol objects, one for each symbol in each SBSymbolContext object in this list.''') |
| |
| |
| # Register SBSymbolContextList in _lldb: |
| _lldb.SBSymbolContextList_swigregister(SBSymbolContextList) |
| |
| class SBTarget(object): |
| r""" |
| Represents the target program running under the debugger. |
| |
| SBTarget supports module, breakpoint, and watchpoint iterations. For example, :: |
| |
| for m in target.module_iter(): |
| print m |
| |
| produces: :: |
| |
| (x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out |
| (x86_64) /usr/lib/dyld |
| (x86_64) /usr/lib/libstdc++.6.dylib |
| (x86_64) /usr/lib/libSystem.B.dylib |
| (x86_64) /usr/lib/system/libmathCommon.A.dylib |
| (x86_64) /usr/lib/libSystem.B.dylib(__commpage) |
| |
| and, :: |
| |
| for b in target.breakpoint_iter(): |
| print b |
| |
| produces: :: |
| |
| SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1 |
| SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1 |
| |
| and, :: |
| |
| for wp_loc in target.watchpoint_iter(): |
| print wp_loc |
| |
| produces: :: |
| |
| Watchpoint 1: addr = 0x1034ca048 size = 4 state = enabled type = rw |
| declare @ '/Volumes/data/lldb/svn/trunk/test/python_api/watchpoint/main.c:12' |
| hw_index = 0 hit_count = 2 ignore_count = 0 |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| eBroadcastBitBreakpointChanged = _lldb.SBTarget_eBroadcastBitBreakpointChanged |
| |
| eBroadcastBitModulesLoaded = _lldb.SBTarget_eBroadcastBitModulesLoaded |
| |
| eBroadcastBitModulesUnloaded = _lldb.SBTarget_eBroadcastBitModulesUnloaded |
| |
| eBroadcastBitWatchpointChanged = _lldb.SBTarget_eBroadcastBitWatchpointChanged |
| |
| eBroadcastBitSymbolsLoaded = _lldb.SBTarget_eBroadcastBitSymbolsLoaded |
| |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTarget self) -> SBTarget |
| __init__(SBTarget self, SBTarget rhs) -> SBTarget |
| """ |
| _lldb.SBTarget_swiginit(self, _lldb.new_SBTarget(*args)) |
| __swig_destroy__ = _lldb.delete_SBTarget |
| |
| @staticmethod |
| def GetBroadcasterClassName() -> "char const *": |
| r"""GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBTarget_GetBroadcasterClassName() |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTarget self) -> bool""" |
| return _lldb.SBTarget_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTarget___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| @staticmethod |
| def EventIsTargetEvent(event: "SBEvent") -> "bool": |
| r"""EventIsTargetEvent(SBEvent event) -> bool""" |
| return _lldb.SBTarget_EventIsTargetEvent(event) |
| |
| @staticmethod |
| def GetTargetFromEvent(event: "SBEvent") -> "lldb::SBTarget": |
| r"""GetTargetFromEvent(SBEvent event) -> SBTarget""" |
| return _lldb.SBTarget_GetTargetFromEvent(event) |
| |
| @staticmethod |
| def GetNumModulesFromEvent(event: "SBEvent") -> "uint32_t": |
| r"""GetNumModulesFromEvent(SBEvent event) -> uint32_t""" |
| return _lldb.SBTarget_GetNumModulesFromEvent(event) |
| |
| @staticmethod |
| def GetModuleAtIndexFromEvent(idx: "uint32_t const", event: "SBEvent") -> "lldb::SBModule": |
| r"""GetModuleAtIndexFromEvent(uint32_t const idx, SBEvent event) -> SBModule""" |
| return _lldb.SBTarget_GetModuleAtIndexFromEvent(idx, event) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBTarget self) -> SBProcess""" |
| return _lldb.SBTarget_GetProcess(self) |
| |
| def GetPlatform(self) -> "lldb::SBPlatform": |
| r""" |
| GetPlatform(SBTarget self) -> SBPlatform |
| |
| Return the platform object associated with the target. |
| |
| After return, the platform object should be checked for |
| validity. |
| |
| @return |
| A platform object. |
| """ |
| return _lldb.SBTarget_GetPlatform(self) |
| |
| def Install(self) -> "lldb::SBError": |
| r""" |
| Install(SBTarget self) -> SBError |
| |
| Install any binaries that need to be installed. |
| |
| This function does nothing when debugging on the host system. |
| When connected to remote platforms, the target's main executable |
| and any modules that have their install path set will be |
| installed on the remote platform. If the main executable doesn't |
| have an install location set, it will be installed in the remote |
| platform's working directory. |
| |
| @return |
| An error describing anything that went wrong during |
| installation. |
| """ |
| return _lldb.SBTarget_Install(self) |
| |
| def LaunchSimple(self, argv: "char const **", envp: "char const **", working_directory: "char const *") -> "lldb::SBProcess": |
| r""" |
| LaunchSimple(SBTarget self, char const ** argv, char const ** envp, char const * working_directory) -> SBProcess |
| |
| Launch a new process with sensible defaults. |
| |
| :param argv: The argument array. |
| :param envp: The environment array. |
| :param working_directory: The working directory to have the child process run in |
| :return: The newly created process. |
| :rtype: SBProcess |
| |
| A pseudo terminal will be used as stdin/stdout/stderr. |
| No launch flags are passed and the target's debuger is used as a listener. |
| |
| For example, :: |
| |
| process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd()) |
| |
| launches a new process by passing 'X', 'Y', 'Z' as the args to the |
| executable. |
| """ |
| return _lldb.SBTarget_LaunchSimple(self, argv, envp, working_directory) |
| |
| def Launch(self, *args) -> "lldb::SBProcess": |
| r""" |
| Launch(SBTarget self, SBListener listener, char const ** argv, char const ** envp, char const * stdin_path, char const * stdout_path, char const * stderr_path, char const * working_directory, uint32_t launch_flags, bool stop_at_entry, SBError error) -> SBProcess |
| Launch(SBTarget self, SBLaunchInfo launch_info, SBError error) -> SBProcess |
| |
| Launch a new process. |
| |
| Launch a new process by spawning a new process using the |
| target object's executable module's file as the file to launch. |
| Arguments are given in argv, and the environment variables |
| are in envp. Standard input and output files can be |
| optionally re-directed to stdin_path, stdout_path, and |
| stderr_path. |
| |
| @param[in] listener |
| An optional listener that will receive all process events. |
| If listener is valid then listener will listen to all |
| process events. If not valid, then this target's debugger |
| (SBTarget::GetDebugger()) will listen to all process events. |
| |
| @param[in] argv |
| The argument array. |
| |
| @param[in] envp |
| The environment array. |
| |
| @param[in] launch_flags |
| Flags to modify the launch (@see lldb::LaunchFlags) |
| |
| @param[in] stdin_path |
| The path to use when re-directing the STDIN of the new |
| process. If all stdXX_path arguments are NULL, a pseudo |
| terminal will be used. |
| |
| @param[in] stdout_path |
| The path to use when re-directing the STDOUT of the new |
| process. If all stdXX_path arguments are NULL, a pseudo |
| terminal will be used. |
| |
| @param[in] stderr_path |
| The path to use when re-directing the STDERR of the new |
| process. If all stdXX_path arguments are NULL, a pseudo |
| terminal will be used. |
| |
| @param[in] working_directory |
| The working directory to have the child process run in |
| |
| @param[in] launch_flags |
| Some launch options specified by logical OR'ing |
| lldb::LaunchFlags enumeration values together. |
| |
| @param[in] stop_at_entry |
| If false do not stop the inferior at the entry point. |
| |
| @param[out] |
| An error object. Contains the reason if there is some failure. |
| |
| @return |
| A process object for the newly created process. |
| |
| For example, |
| |
| process = target.Launch(self.dbg.GetListener(), None, None, |
| None, '/tmp/stdout.txt', None, |
| None, 0, False, error) |
| |
| launches a new process by passing nothing for both the args and the envs |
| and redirect the standard output of the inferior to the /tmp/stdout.txt |
| file. It does not specify a working directory so that the debug server |
| will use its idea of what the current working directory is for the |
| inferior. Also, we ask the debugger not to stop the inferior at the |
| entry point. If no breakpoint is specified for the inferior, it should |
| run to completion if no user interaction is required. |
| """ |
| return _lldb.SBTarget_Launch(self, *args) |
| |
| def LoadCore(self, *args) -> "lldb::SBProcess": |
| r""" |
| LoadCore(SBTarget self, char const * core_file) -> SBProcess |
| LoadCore(SBTarget self, char const * core_file, SBError error) -> SBProcess |
| |
| Load a core file |
| |
| @param[in] core_file |
| File path of the core dump. |
| |
| @param[out] error |
| An error explaining what went wrong if the operation fails. |
| (Optional) |
| |
| @return |
| A process object for the newly created core file. |
| |
| For example, |
| |
| process = target.LoadCore('./a.out.core') |
| |
| loads a new core file and returns the process object. |
| """ |
| return _lldb.SBTarget_LoadCore(self, *args) |
| |
| def Attach(self, attach_info: "SBAttachInfo", error: "SBError") -> "lldb::SBProcess": |
| r"""Attach(SBTarget self, SBAttachInfo attach_info, SBError error) -> SBProcess""" |
| return _lldb.SBTarget_Attach(self, attach_info, error) |
| |
| def AttachToProcessWithID(self, listener: "SBListener", pid: "lldb::pid_t", error: "SBError") -> "lldb::SBProcess": |
| r""" |
| AttachToProcessWithID(SBTarget self, SBListener listener, lldb::pid_t pid, SBError error) -> SBProcess |
| |
| Attach to process with pid. |
| |
| @param[in] listener |
| An optional listener that will receive all process events. |
| If listener is valid then listener will listen to all |
| process events. If not valid, then this target's debugger |
| (SBTarget::GetDebugger()) will listen to all process events. |
| |
| @param[in] pid |
| The process ID to attach to. |
| |
| @param[out] |
| An error explaining what went wrong if attach fails. |
| |
| @return |
| A process object for the attached process. |
| """ |
| return _lldb.SBTarget_AttachToProcessWithID(self, listener, pid, error) |
| |
| def AttachToProcessWithName(self, listener: "SBListener", name: "char const *", wait_for: "bool", error: "SBError") -> "lldb::SBProcess": |
| r""" |
| AttachToProcessWithName(SBTarget self, SBListener listener, char const * name, bool wait_for, SBError error) -> SBProcess |
| |
| Attach to process with name. |
| |
| @param[in] listener |
| An optional listener that will receive all process events. |
| If listener is valid then listener will listen to all |
| process events. If not valid, then this target's debugger |
| (SBTarget::GetDebugger()) will listen to all process events. |
| |
| @param[in] name |
| Basename of process to attach to. |
| |
| @param[in] wait_for |
| If true wait for a new instance of 'name' to be launched. |
| |
| @param[out] |
| An error explaining what went wrong if attach fails. |
| |
| @return |
| A process object for the attached process. |
| """ |
| return _lldb.SBTarget_AttachToProcessWithName(self, listener, name, wait_for, error) |
| |
| def ConnectRemote(self, listener: "SBListener", url: "char const *", plugin_name: "char const *", error: "SBError") -> "lldb::SBProcess": |
| r""" |
| ConnectRemote(SBTarget self, SBListener listener, char const * url, char const * plugin_name, SBError error) -> SBProcess |
| |
| Connect to a remote debug server with url. |
| |
| @param[in] listener |
| An optional listener that will receive all process events. |
| If listener is valid then listener will listen to all |
| process events. If not valid, then this target's debugger |
| (SBTarget::GetDebugger()) will listen to all process events. |
| |
| @param[in] url |
| The url to connect to, e.g., 'connect://localhost:12345'. |
| |
| @param[in] plugin_name |
| The plugin name to be used; can be NULL. |
| |
| @param[out] |
| An error explaining what went wrong if the connect fails. |
| |
| @return |
| A process object for the connected process. |
| """ |
| return _lldb.SBTarget_ConnectRemote(self, listener, url, plugin_name, error) |
| |
| def GetExecutable(self) -> "lldb::SBFileSpec": |
| r"""GetExecutable(SBTarget self) -> SBFileSpec""" |
| return _lldb.SBTarget_GetExecutable(self) |
| |
| def AppendImageSearchPath(self, _from: "char const *", to: "char const *", error: "SBError") -> "void": |
| r""" |
| AppendImageSearchPath(SBTarget self, char const * _from, char const * to, SBError error) |
| |
| Append the path mapping (from -> to) to the target's paths mapping list. |
| """ |
| return _lldb.SBTarget_AppendImageSearchPath(self, _from, to, error) |
| |
| def AddModule(self, *args) -> "lldb::SBModule": |
| r""" |
| AddModule(SBTarget self, SBModule module) -> bool |
| AddModule(SBTarget self, char const * path, char const * triple, char const * uuid) -> SBModule |
| AddModule(SBTarget self, char const * path, char const * triple, char const * uuid_cstr, char const * symfile) -> SBModule |
| AddModule(SBTarget self, SBModuleSpec module_spec) -> SBModule |
| """ |
| return _lldb.SBTarget_AddModule(self, *args) |
| |
| def GetNumModules(self) -> "uint32_t": |
| r"""GetNumModules(SBTarget self) -> uint32_t""" |
| return _lldb.SBTarget_GetNumModules(self) |
| |
| def GetModuleAtIndex(self, idx: "uint32_t") -> "lldb::SBModule": |
| r"""GetModuleAtIndex(SBTarget self, uint32_t idx) -> SBModule""" |
| return _lldb.SBTarget_GetModuleAtIndex(self, idx) |
| |
| def RemoveModule(self, module: "SBModule") -> "bool": |
| r"""RemoveModule(SBTarget self, SBModule module) -> bool""" |
| return _lldb.SBTarget_RemoveModule(self, module) |
| |
| def GetDebugger(self) -> "lldb::SBDebugger": |
| r"""GetDebugger(SBTarget self) -> SBDebugger""" |
| return _lldb.SBTarget_GetDebugger(self) |
| |
| def FindModule(self, file_spec: "SBFileSpec") -> "lldb::SBModule": |
| r"""FindModule(SBTarget self, SBFileSpec file_spec) -> SBModule""" |
| return _lldb.SBTarget_FindModule(self, file_spec) |
| |
| def FindCompileUnits(self, sb_file_spec: "SBFileSpec") -> "lldb::SBSymbolContextList": |
| r""" |
| FindCompileUnits(SBTarget self, SBFileSpec sb_file_spec) -> SBSymbolContextList |
| |
| Find compile units related to this target and passed source |
| file. |
| |
| :param sb_file_spec: A :py:class:`lldb::SBFileSpec` object that contains source file |
| specification. |
| :return: The symbol contexts for all the matches. |
| :rtype: SBSymbolContextList |
| """ |
| return _lldb.SBTarget_FindCompileUnits(self, sb_file_spec) |
| |
| def GetByteOrder(self) -> "lldb::ByteOrder": |
| r"""GetByteOrder(SBTarget self) -> lldb::ByteOrder""" |
| return _lldb.SBTarget_GetByteOrder(self) |
| |
| def GetAddressByteSize(self) -> "uint32_t": |
| r"""GetAddressByteSize(SBTarget self) -> uint32_t""" |
| return _lldb.SBTarget_GetAddressByteSize(self) |
| |
| def GetTriple(self) -> "char const *": |
| r"""GetTriple(SBTarget self) -> char const *""" |
| return _lldb.SBTarget_GetTriple(self) |
| |
| def GetDataByteSize(self) -> "uint32_t": |
| r""" |
| GetDataByteSize(SBTarget self) -> uint32_t |
| |
| Architecture data byte width accessor |
| |
| :return: The size in 8-bit (host) bytes of a minimum addressable unit from the Architecture's data bus. |
| |
| |
| """ |
| return _lldb.SBTarget_GetDataByteSize(self) |
| |
| def GetCodeByteSize(self) -> "uint32_t": |
| r""" |
| GetCodeByteSize(SBTarget self) -> uint32_t |
| |
| Architecture code byte width accessor. |
| |
| :return: The size in 8-bit (host) bytes of a minimum addressable unit from the Architecture's code bus. |
| |
| |
| """ |
| return _lldb.SBTarget_GetCodeByteSize(self) |
| |
| def GetMaximumNumberOfChildrenToDisplay(self) -> "uint32_t": |
| r"""GetMaximumNumberOfChildrenToDisplay(SBTarget self) -> uint32_t""" |
| return _lldb.SBTarget_GetMaximumNumberOfChildrenToDisplay(self) |
| |
| def SetSectionLoadAddress(self, section: "SBSection", section_base_addr: "lldb::addr_t") -> "lldb::SBError": |
| r"""SetSectionLoadAddress(SBTarget self, SBSection section, lldb::addr_t section_base_addr) -> SBError""" |
| return _lldb.SBTarget_SetSectionLoadAddress(self, section, section_base_addr) |
| |
| def ClearSectionLoadAddress(self, section: "SBSection") -> "lldb::SBError": |
| r"""ClearSectionLoadAddress(SBTarget self, SBSection section) -> SBError""" |
| return _lldb.SBTarget_ClearSectionLoadAddress(self, section) |
| |
| def SetModuleLoadAddress(self, module: "SBModule", sections_offset: "int64_t") -> "lldb::SBError": |
| r"""SetModuleLoadAddress(SBTarget self, SBModule module, int64_t sections_offset) -> SBError""" |
| return _lldb.SBTarget_SetModuleLoadAddress(self, module, sections_offset) |
| |
| def ClearModuleLoadAddress(self, module: "SBModule") -> "lldb::SBError": |
| r"""ClearModuleLoadAddress(SBTarget self, SBModule module) -> SBError""" |
| return _lldb.SBTarget_ClearModuleLoadAddress(self, module) |
| |
| def FindFunctions(self, *args) -> "lldb::SBSymbolContextList": |
| r""" |
| FindFunctions(SBTarget self, char const * name, uint32_t name_type_mask=eFunctionNameTypeAny) -> SBSymbolContextList |
| |
| Find functions by name. |
| |
| :param name: The name of the function we are looking for. |
| |
| :param name_type_mask: |
| A logical OR of one or more FunctionNameType enum bits that |
| indicate what kind of names should be used when doing the |
| lookup. Bits include fully qualified names, base names, |
| C++ methods, or ObjC selectors. |
| See FunctionNameType for more details. |
| |
| :return: |
| A lldb::SBSymbolContextList that gets filled in with all of |
| the symbol contexts for all the matches. |
| """ |
| return _lldb.SBTarget_FindFunctions(self, *args) |
| |
| def FindFirstType(self, type: "char const *") -> "lldb::SBType": |
| r"""FindFirstType(SBTarget self, char const * type) -> SBType""" |
| return _lldb.SBTarget_FindFirstType(self, type) |
| |
| def FindTypes(self, type: "char const *") -> "lldb::SBTypeList": |
| r"""FindTypes(SBTarget self, char const * type) -> SBTypeList""" |
| return _lldb.SBTarget_FindTypes(self, type) |
| |
| def GetBasicType(self, type: "lldb::BasicType") -> "lldb::SBType": |
| r"""GetBasicType(SBTarget self, lldb::BasicType type) -> SBType""" |
| return _lldb.SBTarget_GetBasicType(self, type) |
| |
| def GetSourceManager(self) -> "lldb::SBSourceManager": |
| r"""GetSourceManager(SBTarget self) -> SBSourceManager""" |
| return _lldb.SBTarget_GetSourceManager(self) |
| |
| def FindFirstGlobalVariable(self, name: "char const *") -> "lldb::SBValue": |
| r""" |
| FindFirstGlobalVariable(SBTarget self, char const * name) -> SBValue |
| |
| Find the first global (or static) variable by name. |
| |
| @param[in] name |
| The name of the global or static variable we are looking |
| for. |
| |
| @return |
| An SBValue that gets filled in with the found variable (if any). |
| """ |
| return _lldb.SBTarget_FindFirstGlobalVariable(self, name) |
| |
| def FindGlobalVariables(self, *args) -> "lldb::SBValueList": |
| r""" |
| FindGlobalVariables(SBTarget self, char const * name, uint32_t max_matches) -> SBValueList |
| FindGlobalVariables(SBTarget self, char const * name, uint32_t max_matches, lldb::MatchType matchtype) -> SBValueList |
| |
| Find global and static variables by name. |
| |
| @param[in] name |
| The name of the global or static variable we are looking |
| for. |
| |
| @param[in] max_matches |
| Allow the number of matches to be limited to max_matches. |
| |
| @return |
| A list of matched variables in an SBValueList. |
| """ |
| return _lldb.SBTarget_FindGlobalVariables(self, *args) |
| |
| def FindGlobalFunctions(self, name: "char const *", max_matches: "uint32_t", matchtype: "lldb::MatchType") -> "lldb::SBSymbolContextList": |
| r"""FindGlobalFunctions(SBTarget self, char const * name, uint32_t max_matches, lldb::MatchType matchtype) -> SBSymbolContextList""" |
| return _lldb.SBTarget_FindGlobalFunctions(self, name, max_matches, matchtype) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBTarget self)""" |
| return _lldb.SBTarget_Clear(self) |
| |
| def ResolveFileAddress(self, file_addr: "lldb::addr_t") -> "lldb::SBAddress": |
| r""" |
| ResolveFileAddress(SBTarget self, lldb::addr_t file_addr) -> SBAddress |
| |
| Resolve a current file address into a section offset address. |
| |
| @param[in] file_addr |
| |
| @return |
| An SBAddress which will be valid if... |
| """ |
| return _lldb.SBTarget_ResolveFileAddress(self, file_addr) |
| |
| def ResolveLoadAddress(self, vm_addr: "lldb::addr_t") -> "lldb::SBAddress": |
| r"""ResolveLoadAddress(SBTarget self, lldb::addr_t vm_addr) -> SBAddress""" |
| return _lldb.SBTarget_ResolveLoadAddress(self, vm_addr) |
| |
| def ResolvePastLoadAddress(self, stop_id: "uint32_t", vm_addr: "lldb::addr_t") -> "lldb::SBAddress": |
| r"""ResolvePastLoadAddress(SBTarget self, uint32_t stop_id, lldb::addr_t vm_addr) -> SBAddress""" |
| return _lldb.SBTarget_ResolvePastLoadAddress(self, stop_id, vm_addr) |
| |
| def ResolveSymbolContextForAddress(self, addr: "SBAddress", resolve_scope: "uint32_t") -> "lldb::SBSymbolContext": |
| r"""ResolveSymbolContextForAddress(SBTarget self, SBAddress addr, uint32_t resolve_scope) -> SBSymbolContext""" |
| return _lldb.SBTarget_ResolveSymbolContextForAddress(self, addr, resolve_scope) |
| |
| def ReadMemory(self, addr: "SBAddress", buf: "void *", error: "SBError") -> "size_t": |
| r""" |
| ReadMemory(SBTarget self, SBAddress addr, void * buf, SBError error) -> size_t |
| |
| Read target memory. If a target process is running then memory |
| is read from here. Otherwise the memory is read from the object |
| files. For a target whose bytes are sized as a multiple of host |
| bytes, the data read back will preserve the target's byte order. |
| |
| @param[in] addr |
| A target address to read from. |
| |
| @param[out] buf |
| The buffer to read memory into. |
| |
| @param[in] size |
| The maximum number of host bytes to read in the buffer passed |
| into this call |
| |
| @param[out] error |
| Error information is written here if the memory read fails. |
| |
| @return |
| The amount of data read in host bytes. |
| """ |
| return _lldb.SBTarget_ReadMemory(self, addr, buf, error) |
| |
| def BreakpointCreateByLocation(self, *args) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateByLocation(SBTarget self, char const * file, uint32_t line) -> SBBreakpoint |
| BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line) -> SBBreakpoint |
| BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line, lldb::addr_t offset) -> SBBreakpoint |
| BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line, lldb::addr_t offset, SBFileSpecList module_list) -> SBBreakpoint |
| BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line, uint32_t column, lldb::addr_t offset, SBFileSpecList module_list) -> SBBreakpoint |
| BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line, uint32_t column, lldb::addr_t offset, SBFileSpecList module_list, bool move_to_nearest_code) -> SBBreakpoint |
| """ |
| return _lldb.SBTarget_BreakpointCreateByLocation(self, *args) |
| |
| def BreakpointCreateByName(self, *args) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateByName(SBTarget self, char const * symbol_name, char const * module_name=None) -> SBBreakpoint |
| BreakpointCreateByName(SBTarget self, char const * symbol_name, uint32_t func_name_type, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| BreakpointCreateByName(SBTarget self, char const * symbol_name, uint32_t func_name_type, lldb::LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| """ |
| return _lldb.SBTarget_BreakpointCreateByName(self, *args) |
| |
| def BreakpointCreateByNames(self, *args) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateByNames(SBTarget self, char const ** symbol_name, uint32_t name_type_mask, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| BreakpointCreateByNames(SBTarget self, char const ** symbol_name, uint32_t name_type_mask, lldb::LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| BreakpointCreateByNames(SBTarget self, char const ** symbol_name, uint32_t name_type_mask, lldb::LanguageType symbol_language, lldb::addr_t offset, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| """ |
| return _lldb.SBTarget_BreakpointCreateByNames(self, *args) |
| |
| def BreakpointCreateByRegex(self, *args) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateByRegex(SBTarget self, char const * symbol_name_regex, char const * module_name=None) -> SBBreakpoint |
| BreakpointCreateByRegex(SBTarget self, char const * symbol_name_regex, lldb::LanguageType symbol_language, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint |
| """ |
| return _lldb.SBTarget_BreakpointCreateByRegex(self, *args) |
| |
| def BreakpointCreateBySourceRegex(self, *args) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateBySourceRegex(SBTarget self, char const * source_regex, SBFileSpec source_file, char const * module_name=None) -> SBBreakpoint |
| BreakpointCreateBySourceRegex(SBTarget self, char const * source_regex, SBFileSpecList module_list, SBFileSpecList file_list) -> SBBreakpoint |
| BreakpointCreateBySourceRegex(SBTarget self, char const * source_regex, SBFileSpecList module_list, SBFileSpecList source_file, SBStringList func_names) -> SBBreakpoint |
| """ |
| return _lldb.SBTarget_BreakpointCreateBySourceRegex(self, *args) |
| |
| def BreakpointCreateForException(self, language: "lldb::LanguageType", catch_bp: "bool", throw_bp: "bool") -> "lldb::SBBreakpoint": |
| r"""BreakpointCreateForException(SBTarget self, lldb::LanguageType language, bool catch_bp, bool throw_bp) -> SBBreakpoint""" |
| return _lldb.SBTarget_BreakpointCreateForException(self, language, catch_bp, throw_bp) |
| |
| def BreakpointCreateByAddress(self, address: "lldb::addr_t") -> "lldb::SBBreakpoint": |
| r"""BreakpointCreateByAddress(SBTarget self, lldb::addr_t address) -> SBBreakpoint""" |
| return _lldb.SBTarget_BreakpointCreateByAddress(self, address) |
| |
| def GetEnvironment(self) -> "lldb::SBEnvironment": |
| r"""GetEnvironment(SBTarget self) -> SBEnvironment""" |
| return _lldb.SBTarget_GetEnvironment(self) |
| |
| def BreakpointCreateBySBAddress(self, sb_address: "SBAddress") -> "lldb::SBBreakpoint": |
| r"""BreakpointCreateBySBAddress(SBTarget self, SBAddress sb_address) -> SBBreakpoint""" |
| return _lldb.SBTarget_BreakpointCreateBySBAddress(self, sb_address) |
| |
| def BreakpointCreateFromScript(self, class_name: "char const *", extra_args: "SBStructuredData", module_list: "SBFileSpecList", file_list: "SBFileSpecList", request_hardware: "bool"=False) -> "lldb::SBBreakpoint": |
| r""" |
| BreakpointCreateFromScript(SBTarget self, char const * class_name, SBStructuredData extra_args, SBFileSpecList module_list, SBFileSpecList file_list, bool request_hardware=False) -> SBBreakpoint |
| |
| Create a breakpoint using a scripted resolver. |
| |
| @param[in] class_name |
| This is the name of the class that implements a scripted resolver. |
| The class should have the following signature: :: |
| |
| class Resolver: |
| def __init__(self, bkpt, extra_args): |
| # bkpt - the breakpoint for which this is the resolver. When |
| # the resolver finds an interesting address, call AddLocation |
| # on this breakpoint to add it. |
| # |
| # extra_args - an SBStructuredData that can be used to |
| # parametrize this instance. Same as the extra_args passed |
| # to BreakpointCreateFromScript. |
| |
| def __get_depth__ (self): |
| # This is optional, but if defined, you should return the |
| # depth at which you want the callback to be called. The |
| # available options are: |
| # lldb.eSearchDepthModule |
| # lldb.eSearchDepthCompUnit |
| # The default if you don't implement this method is |
| # eSearchDepthModule. |
| |
| def __callback__(self, sym_ctx): |
| # sym_ctx - an SBSymbolContext that is the cursor in the |
| # search through the program to resolve breakpoints. |
| # The sym_ctx will be filled out to the depth requested in |
| # __get_depth__. |
| # Look in this sym_ctx for new breakpoint locations, |
| # and if found use bkpt.AddLocation to add them. |
| # Note, you will only get called for modules/compile_units that |
| # pass the SearchFilter provided by the module_list & file_list |
| # passed into BreakpointCreateFromScript. |
| |
| def get_short_help(self): |
| # Optional, but if implemented return a short string that will |
| # be printed at the beginning of the break list output for the |
| # breakpoint. |
| |
| @param[in] extra_args |
| This is an SBStructuredData object that will get passed to the |
| constructor of the class in class_name. You can use this to |
| reuse the same class, parametrizing it with entries from this |
| dictionary. |
| |
| @param module_list |
| If this is non-empty, this will be used as the module filter in the |
| SearchFilter created for this breakpoint. |
| |
| @param file_list |
| If this is non-empty, this will be used as the comp unit filter in the |
| SearchFilter created for this breakpoint. |
| |
| @return |
| An SBBreakpoint that will set locations based on the logic in the |
| resolver's search callback. |
| """ |
| return _lldb.SBTarget_BreakpointCreateFromScript(self, class_name, extra_args, module_list, file_list, request_hardware) |
| |
| def GetNumBreakpoints(self) -> "uint32_t": |
| r"""GetNumBreakpoints(SBTarget self) -> uint32_t""" |
| return _lldb.SBTarget_GetNumBreakpoints(self) |
| |
| def GetBreakpointAtIndex(self, idx: "uint32_t") -> "lldb::SBBreakpoint": |
| r"""GetBreakpointAtIndex(SBTarget self, uint32_t idx) -> SBBreakpoint""" |
| return _lldb.SBTarget_GetBreakpointAtIndex(self, idx) |
| |
| def BreakpointDelete(self, break_id: "lldb::break_id_t") -> "bool": |
| r"""BreakpointDelete(SBTarget self, lldb::break_id_t break_id) -> bool""" |
| return _lldb.SBTarget_BreakpointDelete(self, break_id) |
| |
| def FindBreakpointByID(self, break_id: "lldb::break_id_t") -> "lldb::SBBreakpoint": |
| r"""FindBreakpointByID(SBTarget self, lldb::break_id_t break_id) -> SBBreakpoint""" |
| return _lldb.SBTarget_FindBreakpointByID(self, break_id) |
| |
| def FindBreakpointsByName(self, name: "char const *", bkpt_list: "SBBreakpointList") -> "bool": |
| r"""FindBreakpointsByName(SBTarget self, char const * name, SBBreakpointList bkpt_list) -> bool""" |
| return _lldb.SBTarget_FindBreakpointsByName(self, name, bkpt_list) |
| |
| def DeleteBreakpointName(self, name: "char const *") -> "void": |
| r"""DeleteBreakpointName(SBTarget self, char const * name)""" |
| return _lldb.SBTarget_DeleteBreakpointName(self, name) |
| |
| def GetBreakpointNames(self, names: "SBStringList") -> "void": |
| r"""GetBreakpointNames(SBTarget self, SBStringList names)""" |
| return _lldb.SBTarget_GetBreakpointNames(self, names) |
| |
| def EnableAllBreakpoints(self) -> "bool": |
| r"""EnableAllBreakpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_EnableAllBreakpoints(self) |
| |
| def DisableAllBreakpoints(self) -> "bool": |
| r"""DisableAllBreakpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_DisableAllBreakpoints(self) |
| |
| def DeleteAllBreakpoints(self) -> "bool": |
| r"""DeleteAllBreakpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_DeleteAllBreakpoints(self) |
| |
| def BreakpointsCreateFromFile(self, *args) -> "lldb::SBError": |
| r""" |
| BreakpointsCreateFromFile(SBTarget self, SBFileSpec source_file, SBBreakpointList bkpt_list) -> SBError |
| BreakpointsCreateFromFile(SBTarget self, SBFileSpec source_file, SBStringList matching_names, SBBreakpointList new_bps) -> SBError |
| |
| Read breakpoints from source_file and return the newly created |
| breakpoints in bkpt_list. |
| |
| @param[in] source_file |
| The file from which to read the breakpoints |
| |
| @param[in] matching_names |
| Only read in breakpoints whose names match one of the names in this |
| list. |
| |
| @param[out] bkpt_list |
| A list of the newly created breakpoints. |
| |
| @return |
| An SBError detailing any errors in reading in the breakpoints. |
| """ |
| return _lldb.SBTarget_BreakpointsCreateFromFile(self, *args) |
| |
| def BreakpointsWriteToFile(self, *args) -> "lldb::SBError": |
| r""" |
| BreakpointsWriteToFile(SBTarget self, SBFileSpec dest_file) -> SBError |
| BreakpointsWriteToFile(SBTarget self, SBFileSpec dest_file, SBBreakpointList bkpt_list, bool append=False) -> SBError |
| """ |
| return _lldb.SBTarget_BreakpointsWriteToFile(self, *args) |
| |
| def GetNumWatchpoints(self) -> "uint32_t": |
| r"""GetNumWatchpoints(SBTarget self) -> uint32_t""" |
| return _lldb.SBTarget_GetNumWatchpoints(self) |
| |
| def GetWatchpointAtIndex(self, idx: "uint32_t") -> "lldb::SBWatchpoint": |
| r"""GetWatchpointAtIndex(SBTarget self, uint32_t idx) -> SBWatchpoint""" |
| return _lldb.SBTarget_GetWatchpointAtIndex(self, idx) |
| |
| def DeleteWatchpoint(self, watch_id: "lldb::watch_id_t") -> "bool": |
| r"""DeleteWatchpoint(SBTarget self, lldb::watch_id_t watch_id) -> bool""" |
| return _lldb.SBTarget_DeleteWatchpoint(self, watch_id) |
| |
| def FindWatchpointByID(self, watch_id: "lldb::watch_id_t") -> "lldb::SBWatchpoint": |
| r"""FindWatchpointByID(SBTarget self, lldb::watch_id_t watch_id) -> SBWatchpoint""" |
| return _lldb.SBTarget_FindWatchpointByID(self, watch_id) |
| |
| def EnableAllWatchpoints(self) -> "bool": |
| r"""EnableAllWatchpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_EnableAllWatchpoints(self) |
| |
| def DisableAllWatchpoints(self) -> "bool": |
| r"""DisableAllWatchpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_DisableAllWatchpoints(self) |
| |
| def DeleteAllWatchpoints(self) -> "bool": |
| r"""DeleteAllWatchpoints(SBTarget self) -> bool""" |
| return _lldb.SBTarget_DeleteAllWatchpoints(self) |
| |
| def WatchAddress(self, addr: "lldb::addr_t", size: "size_t", read: "bool", write: "bool", error: "SBError") -> "lldb::SBWatchpoint": |
| r"""WatchAddress(SBTarget self, lldb::addr_t addr, size_t size, bool read, bool write, SBError error) -> SBWatchpoint""" |
| return _lldb.SBTarget_WatchAddress(self, addr, size, read, write, error) |
| |
| def GetBroadcaster(self) -> "lldb::SBBroadcaster": |
| r"""GetBroadcaster(SBTarget self) -> SBBroadcaster""" |
| return _lldb.SBTarget_GetBroadcaster(self) |
| |
| def CreateValueFromAddress(self, name: "char const *", addr: "SBAddress", type: "SBType") -> "lldb::SBValue": |
| r""" |
| CreateValueFromAddress(SBTarget self, char const * name, SBAddress addr, SBType type) -> SBValue |
| |
| Create an SBValue with the given name by treating the memory starting at addr as an entity of type. |
| |
| @param[in] name |
| The name of the resultant SBValue |
| |
| @param[in] addr |
| The address of the start of the memory region to be used. |
| |
| @param[in] type |
| The type to use to interpret the memory starting at addr. |
| |
| @return |
| An SBValue of the given type, may be invalid if there was an error reading |
| the underlying memory. |
| """ |
| return _lldb.SBTarget_CreateValueFromAddress(self, name, addr, type) |
| |
| def CreateValueFromData(self, name: "char const *", data: "SBData", type: "SBType") -> "lldb::SBValue": |
| r"""CreateValueFromData(SBTarget self, char const * name, SBData data, SBType type) -> SBValue""" |
| return _lldb.SBTarget_CreateValueFromData(self, name, data, type) |
| |
| def CreateValueFromExpression(self, name: "char const *", expr: "char const *") -> "lldb::SBValue": |
| r"""CreateValueFromExpression(SBTarget self, char const * name, char const * expr) -> SBValue""" |
| return _lldb.SBTarget_CreateValueFromExpression(self, name, expr) |
| |
| def ReadInstructions(self, *args) -> "lldb::SBInstructionList": |
| r""" |
| ReadInstructions(SBTarget self, SBAddress base_addr, uint32_t count) -> SBInstructionList |
| ReadInstructions(SBTarget self, SBAddress base_addr, uint32_t count, char const * flavor_string) -> SBInstructionList |
| |
| Disassemble a specified number of instructions starting at an address. |
| |
| :param base_addr: the address to start disassembly from. |
| :param count: the number of instructions to disassemble. |
| :param flavor_string: may be 'intel' or 'att' on x86 targets to specify that style of disassembly. |
| :rtype: SBInstructionList |
| |
| """ |
| return _lldb.SBTarget_ReadInstructions(self, *args) |
| |
| def GetInstructions(self, base_addr: "SBAddress", buf: "void const *") -> "lldb::SBInstructionList": |
| r""" |
| GetInstructions(SBTarget self, SBAddress base_addr, void const * buf) -> SBInstructionList |
| |
| Disassemble the bytes in a buffer and return them in an SBInstructionList. |
| |
| :param base_addr: used for symbolicating the offsets in the byte stream when disassembling. |
| :param buf: bytes to be disassembled. |
| :param size: (C++) size of the buffer. |
| :rtype: SBInstructionList |
| |
| """ |
| return _lldb.SBTarget_GetInstructions(self, base_addr, buf) |
| |
| def GetInstructionsWithFlavor(self, base_addr: "SBAddress", flavor_string: "char const *", buf: "void const *") -> "lldb::SBInstructionList": |
| r""" |
| GetInstructionsWithFlavor(SBTarget self, SBAddress base_addr, char const * flavor_string, void const * buf) -> SBInstructionList |
| |
| Disassemble the bytes in a buffer and return them in an SBInstructionList, with a supplied flavor. |
| |
| :param base_addr: used for symbolicating the offsets in the byte stream when disassembling. |
| :param flavor: may be 'intel' or 'att' on x86 targets to specify that style of disassembly. |
| :param buf: bytes to be disassembled. |
| :param size: (C++) size of the buffer. |
| :rtype: SBInstructionList |
| |
| """ |
| return _lldb.SBTarget_GetInstructionsWithFlavor(self, base_addr, flavor_string, buf) |
| |
| def FindSymbols(self, *args) -> "lldb::SBSymbolContextList": |
| r"""FindSymbols(SBTarget self, char const * name, lldb::SymbolType type=eSymbolTypeAny) -> SBSymbolContextList""" |
| return _lldb.SBTarget_FindSymbols(self, *args) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTarget self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTarget_GetDescription(self, description, description_level) |
| |
| def GetStackRedZoneSize(self) -> "lldb::addr_t": |
| r"""GetStackRedZoneSize(SBTarget self) -> lldb::addr_t""" |
| return _lldb.SBTarget_GetStackRedZoneSize(self) |
| |
| def IsLoaded(self, module: "SBModule") -> "bool": |
| r""" |
| IsLoaded(SBTarget self, SBModule module) -> bool |
| |
| Returns true if the module has been loaded in this `SBTarget`. |
| A module can be loaded either by the dynamic loader or by being manually |
| added to the target (see `SBTarget.AddModule` and the `target module add` command). |
| |
| :rtype: bool |
| |
| """ |
| return _lldb.SBTarget_IsLoaded(self, module) |
| |
| def GetLaunchInfo(self) -> "lldb::SBLaunchInfo": |
| r"""GetLaunchInfo(SBTarget self) -> SBLaunchInfo""" |
| return _lldb.SBTarget_GetLaunchInfo(self) |
| |
| def SetLaunchInfo(self, launch_info: "SBLaunchInfo") -> "void": |
| r"""SetLaunchInfo(SBTarget self, SBLaunchInfo launch_info)""" |
| return _lldb.SBTarget_SetLaunchInfo(self, launch_info) |
| |
| def SetCollectingStats(self, v: "bool") -> "void": |
| r"""SetCollectingStats(SBTarget self, bool v)""" |
| return _lldb.SBTarget_SetCollectingStats(self, v) |
| |
| def GetCollectingStats(self) -> "bool": |
| r"""GetCollectingStats(SBTarget self) -> bool""" |
| return _lldb.SBTarget_GetCollectingStats(self) |
| |
| def GetStatistics(self) -> "lldb::SBStructuredData": |
| r"""GetStatistics(SBTarget self) -> SBStructuredData""" |
| return _lldb.SBTarget_GetStatistics(self) |
| |
| def __eq__(self, rhs: "SBTarget") -> "bool": |
| r"""__eq__(SBTarget self, SBTarget rhs) -> bool""" |
| return _lldb.SBTarget___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTarget") -> "bool": |
| r"""__ne__(SBTarget self, SBTarget rhs) -> bool""" |
| return _lldb.SBTarget___ne__(self, rhs) |
| |
| def EvaluateExpression(self, *args) -> "lldb::SBValue": |
| r""" |
| EvaluateExpression(SBTarget self, char const * expr) -> SBValue |
| EvaluateExpression(SBTarget self, char const * expr, SBExpressionOptions options) -> SBValue |
| """ |
| return _lldb.SBTarget_EvaluateExpression(self, *args) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTarget self) -> std::string""" |
| return _lldb.SBTarget___str__(self) |
| |
| def GetTrace(self) -> "lldb::SBTrace": |
| r"""GetTrace(SBTarget self) -> SBTrace""" |
| return _lldb.SBTarget_GetTrace(self) |
| |
| def CreateTrace(self, error: "SBError") -> "lldb::SBTrace": |
| r"""CreateTrace(SBTarget self, SBError error) -> SBTrace""" |
| return _lldb.SBTarget_CreateTrace(self, error) |
| |
| class modules_access(object): |
| '''A helper object that will lazily hand out lldb.SBModule objects for a target when supplied an index, or by full or partial path.''' |
| def __init__(self, sbtarget): |
| self.sbtarget = sbtarget |
| |
| def __len__(self): |
| if self.sbtarget: |
| return int(self.sbtarget.GetNumModules()) |
| return 0 |
| |
| def __getitem__(self, key): |
| num_modules = self.sbtarget.GetNumModules() |
| if type(key) is int: |
| if key < num_modules: |
| return self.sbtarget.GetModuleAtIndex(key) |
| elif type(key) is str: |
| if key.find('/') == -1: |
| for idx in range(num_modules): |
| module = self.sbtarget.GetModuleAtIndex(idx) |
| if module.file.basename == key: |
| return module |
| else: |
| for idx in range(num_modules): |
| module = self.sbtarget.GetModuleAtIndex(idx) |
| if module.file.fullpath == key: |
| return module |
| # See if the string is a UUID |
| try: |
| the_uuid = uuid.UUID(key) |
| if the_uuid: |
| for idx in range(num_modules): |
| module = self.sbtarget.GetModuleAtIndex(idx) |
| if module.uuid == the_uuid: |
| return module |
| except: |
| return None |
| elif type(key) is uuid.UUID: |
| for idx in range(num_modules): |
| module = self.sbtarget.GetModuleAtIndex(idx) |
| if module.uuid == key: |
| return module |
| elif type(key) is re.SRE_Pattern: |
| matching_modules = [] |
| for idx in range(num_modules): |
| module = self.sbtarget.GetModuleAtIndex(idx) |
| re_match = key.search(module.path.fullpath) |
| if re_match: |
| matching_modules.append(module) |
| return matching_modules |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| def get_modules_access_object(self): |
| '''An accessor function that returns a modules_access() object which allows lazy module access from a lldb.SBTarget object.''' |
| return self.modules_access (self) |
| |
| def get_modules_array(self): |
| '''An accessor function that returns a list() that contains all modules in a lldb.SBTarget object.''' |
| modules = [] |
| for idx in range(self.GetNumModules()): |
| modules.append(self.GetModuleAtIndex(idx)) |
| return modules |
| |
| def module_iter(self): |
| '''Returns an iterator over all modules in a lldb.SBTarget |
| object.''' |
| return lldb_iter(self, 'GetNumModules', 'GetModuleAtIndex') |
| |
| def breakpoint_iter(self): |
| '''Returns an iterator over all breakpoints in a lldb.SBTarget |
| object.''' |
| return lldb_iter(self, 'GetNumBreakpoints', 'GetBreakpointAtIndex') |
| |
| def watchpoint_iter(self): |
| '''Returns an iterator over all watchpoints in a lldb.SBTarget |
| object.''' |
| return lldb_iter(self, 'GetNumWatchpoints', 'GetWatchpointAtIndex') |
| |
| modules = property(get_modules_array, None, doc='''A read only property that returns a list() of lldb.SBModule objects contained in this target. This list is a list all modules that the target currently is tracking (the main executable and all dependent shared libraries).''') |
| module = property(get_modules_access_object, None, doc=r'''A read only property that returns an object that implements python operator overloading with the square brackets().\n target.module[<int>] allows array access to any modules.\n target.module[<str>] allows access to modules by basename, full path, or uuid string value.\n target.module[uuid.UUID()] allows module access by UUID.\n target.module[re] allows module access using a regular expression that matches the module full path.''') |
| process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that this target owns.''') |
| executable = property(GetExecutable, None, doc='''A read only property that returns an lldb object that represents the main executable module (lldb.SBModule) for this target.''') |
| debugger = property(GetDebugger, None, doc='''A read only property that returns an lldb object that represents the debugger (lldb.SBDebugger) that owns this target.''') |
| num_breakpoints = property(GetNumBreakpoints, None, doc='''A read only property that returns the number of breakpoints that this target has as an integer.''') |
| num_watchpoints = property(GetNumWatchpoints, None, doc='''A read only property that returns the number of watchpoints that this target has as an integer.''') |
| broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this target.''') |
| byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this target.''') |
| addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this target.''') |
| triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this target as a string.''') |
| data_byte_size = property(GetDataByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the data address space for this target.''') |
| code_byte_size = property(GetCodeByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the code address space for this target.''') |
| platform = property(GetPlatform, None, doc='''A read only property that returns the platform associated with with this target.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBTarget in _lldb: |
| _lldb.SBTarget_swigregister(SBTarget) |
| |
| def SBTarget_GetBroadcasterClassName() -> "char const *": |
| r"""SBTarget_GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBTarget_GetBroadcasterClassName() |
| |
| def SBTarget_EventIsTargetEvent(event: "SBEvent") -> "bool": |
| r"""SBTarget_EventIsTargetEvent(SBEvent event) -> bool""" |
| return _lldb.SBTarget_EventIsTargetEvent(event) |
| |
| def SBTarget_GetTargetFromEvent(event: "SBEvent") -> "lldb::SBTarget": |
| r"""SBTarget_GetTargetFromEvent(SBEvent event) -> SBTarget""" |
| return _lldb.SBTarget_GetTargetFromEvent(event) |
| |
| def SBTarget_GetNumModulesFromEvent(event: "SBEvent") -> "uint32_t": |
| r"""SBTarget_GetNumModulesFromEvent(SBEvent event) -> uint32_t""" |
| return _lldb.SBTarget_GetNumModulesFromEvent(event) |
| |
| def SBTarget_GetModuleAtIndexFromEvent(idx: "uint32_t const", event: "SBEvent") -> "lldb::SBModule": |
| r"""SBTarget_GetModuleAtIndexFromEvent(uint32_t const idx, SBEvent event) -> SBModule""" |
| return _lldb.SBTarget_GetModuleAtIndexFromEvent(idx, event) |
| |
| class SBThread(object): |
| r""" |
| Represents a thread of execution. :py:class:`SBProcess` contains SBThread(s). |
| |
| SBThreads can be referred to by their ID, which maps to the system specific thread |
| identifier, or by IndexID. The ID may or may not be unique depending on whether the |
| system reuses its thread identifiers. The IndexID is a monotonically increasing identifier |
| that will always uniquely reference a particular thread, and when that thread goes |
| away it will not be reused. |
| |
| SBThread supports frame iteration. For example (from test/python_api/ |
| lldbutil/iter/TestLLDBIterator.py), :: |
| |
| from lldbutil import print_stacktrace |
| stopped_due_to_breakpoint = False |
| for thread in process: |
| if self.TraceOn(): |
| print_stacktrace(thread) |
| ID = thread.GetThreadID() |
| if thread.GetStopReason() == lldb.eStopReasonBreakpoint: |
| stopped_due_to_breakpoint = True |
| for frame in thread: |
| self.assertTrue(frame.GetThread().GetThreadID() == ID) |
| if self.TraceOn(): |
| print frame |
| |
| self.assertTrue(stopped_due_to_breakpoint) |
| |
| See also :py:class:`SBFrame` . |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| eBroadcastBitStackChanged = _lldb.SBThread_eBroadcastBitStackChanged |
| |
| eBroadcastBitThreadSuspended = _lldb.SBThread_eBroadcastBitThreadSuspended |
| |
| eBroadcastBitThreadResumed = _lldb.SBThread_eBroadcastBitThreadResumed |
| |
| eBroadcastBitSelectedFrameChanged = _lldb.SBThread_eBroadcastBitSelectedFrameChanged |
| |
| eBroadcastBitThreadSelected = _lldb.SBThread_eBroadcastBitThreadSelected |
| |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBThread self) -> SBThread |
| __init__(SBThread self, SBThread thread) -> SBThread |
| """ |
| _lldb.SBThread_swiginit(self, _lldb.new_SBThread(*args)) |
| __swig_destroy__ = _lldb.delete_SBThread |
| |
| @staticmethod |
| def GetBroadcasterClassName() -> "char const *": |
| r"""GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBThread_GetBroadcasterClassName() |
| |
| @staticmethod |
| def EventIsThreadEvent(event: "SBEvent") -> "bool": |
| r"""EventIsThreadEvent(SBEvent event) -> bool""" |
| return _lldb.SBThread_EventIsThreadEvent(event) |
| |
| @staticmethod |
| def GetStackFrameFromEvent(event: "SBEvent") -> "lldb::SBFrame": |
| r"""GetStackFrameFromEvent(SBEvent event) -> SBFrame""" |
| return _lldb.SBThread_GetStackFrameFromEvent(event) |
| |
| @staticmethod |
| def GetThreadFromEvent(event: "SBEvent") -> "lldb::SBThread": |
| r"""GetThreadFromEvent(SBEvent event) -> SBThread""" |
| return _lldb.SBThread_GetThreadFromEvent(event) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBThread self) -> bool""" |
| return _lldb.SBThread_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBThread___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBThread self)""" |
| return _lldb.SBThread_Clear(self) |
| |
| def GetStopReason(self) -> "lldb::StopReason": |
| r"""GetStopReason(SBThread self) -> lldb::StopReason""" |
| return _lldb.SBThread_GetStopReason(self) |
| |
| def GetStopReasonDataCount(self) -> "size_t": |
| r""" |
| GetStopReasonDataCount(SBThread self) -> size_t |
| |
| Get the number of words associated with the stop reason. |
| See also GetStopReasonDataAtIndex(). |
| """ |
| return _lldb.SBThread_GetStopReasonDataCount(self) |
| |
| def GetStopReasonDataAtIndex(self, idx: "uint32_t") -> "uint64_t": |
| r""" |
| GetStopReasonDataAtIndex(SBThread self, uint32_t idx) -> uint64_t |
| |
| Get information associated with a stop reason. |
| |
| Breakpoint stop reasons will have data that consists of pairs of |
| breakpoint IDs followed by the breakpoint location IDs (they always come |
| in pairs). |
| |
| Stop Reason Count Data Type |
| ======================== ===== ========================================= |
| eStopReasonNone 0 |
| eStopReasonTrace 0 |
| eStopReasonBreakpoint N duple: {breakpoint id, location id} |
| eStopReasonWatchpoint 1 watchpoint id |
| eStopReasonSignal 1 unix signal number |
| eStopReasonException N exception data |
| eStopReasonExec 0 |
| eStopReasonFork 1 pid of the child process |
| eStopReasonVFork 1 pid of the child process |
| eStopReasonVForkDone 0 |
| eStopReasonPlanComplete 0 |
| """ |
| return _lldb.SBThread_GetStopReasonDataAtIndex(self, idx) |
| |
| def GetStopReasonExtendedInfoAsJSON(self, stream: "SBStream") -> "bool": |
| r""" |
| |
| Collects a thread's stop reason extended information dictionary and prints it |
| into the SBStream in a JSON format. The format of this JSON dictionary depends |
| on the stop reason and is currently used only for instrumentation plugins. |
| """ |
| return _lldb.SBThread_GetStopReasonExtendedInfoAsJSON(self, stream) |
| |
| def GetStopReasonExtendedBacktraces(self, type: "lldb::InstrumentationRuntimeType") -> "lldb::SBThreadCollection": |
| r""" |
| |
| Returns a collection of historical stack traces that are significant to the |
| current stop reason. Used by ThreadSanitizer, where we provide various stack |
| traces that were involved in a data race or other type of detected issue. |
| """ |
| return _lldb.SBThread_GetStopReasonExtendedBacktraces(self, type) |
| |
| def GetStopDescription(self, dst_or_null: "char *") -> "size_t": |
| r""" |
| |
| Pass only an (int)length and expect to get a Python string describing the |
| stop reason. |
| """ |
| return _lldb.SBThread_GetStopDescription(self, dst_or_null) |
| |
| def GetStopReturnValue(self) -> "lldb::SBValue": |
| r"""GetStopReturnValue(SBThread self) -> SBValue""" |
| return _lldb.SBThread_GetStopReturnValue(self) |
| |
| def GetThreadID(self) -> "lldb::tid_t": |
| r""" |
| |
| Returns a unique thread identifier (type lldb::tid_t, typically a 64-bit type) |
| for the current SBThread that will remain constant throughout the thread's |
| lifetime in this process and will not be reused by another thread during this |
| process lifetime. On Mac OS X systems, this is a system-wide unique thread |
| identifier; this identifier is also used by other tools like sample which helps |
| to associate data from those tools with lldb. See related GetIndexID. |
| """ |
| return _lldb.SBThread_GetThreadID(self) |
| |
| def GetIndexID(self) -> "uint32_t": |
| r""" |
| |
| Return the index number for this SBThread. The index number is the same thing |
| that a user gives as an argument to 'thread select' in the command line lldb. |
| These numbers start at 1 (for the first thread lldb sees in a debug session) |
| and increments up throughout the process lifetime. An index number will not be |
| reused for a different thread later in a process - thread 1 will always be |
| associated with the same thread. See related GetThreadID. |
| This method returns a uint32_t index number, takes no arguments. |
| """ |
| return _lldb.SBThread_GetIndexID(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBThread self) -> char const *""" |
| return _lldb.SBThread_GetName(self) |
| |
| def GetQueueName(self) -> "char const *": |
| r""" |
| |
| Return the queue name associated with this thread, if any, as a str. |
| For example, with a libdispatch (aka Grand Central Dispatch) queue. |
| """ |
| return _lldb.SBThread_GetQueueName(self) |
| |
| def GetQueueID(self) -> "lldb::queue_id_t": |
| r""" |
| |
| Return the dispatch_queue_id for this thread, if any, as a lldb::queue_id_t. |
| For example, with a libdispatch (aka Grand Central Dispatch) queue. |
| """ |
| return _lldb.SBThread_GetQueueID(self) |
| |
| def GetInfoItemByPathAsString(self, path: "char const *", strm: "SBStream") -> "bool": |
| r""" |
| GetInfoItemByPathAsString(SBThread self, char const * path, SBStream strm) -> bool |
| |
| Takes a path string and a SBStream reference as parameters, returns a bool. |
| Collects the thread's 'info' dictionary from the remote system, uses the path |
| argument to descend into the dictionary to an item of interest, and prints |
| it into the SBStream in a natural format. Return bool is to indicate if |
| anything was printed into the stream (true) or not (false). |
| """ |
| return _lldb.SBThread_GetInfoItemByPathAsString(self, path, strm) |
| |
| def GetQueue(self) -> "lldb::SBQueue": |
| r""" |
| |
| Return the SBQueue for this thread. If this thread is not currently associated |
| with a libdispatch queue, the SBQueue object's IsValid() method will return false. |
| If this SBThread is actually a HistoryThread, we may be able to provide QueueID |
| and QueueName, but not provide an SBQueue. Those individual attributes may have |
| been saved for the HistoryThread without enough information to reconstitute the |
| entire SBQueue at that time. |
| This method takes no arguments, returns an SBQueue. |
| """ |
| return _lldb.SBThread_GetQueue(self) |
| |
| def StepOver(self, *args) -> "void": |
| r"""StepOver(SBThread self, lldb::RunMode stop_other_threads=eOnlyDuringStepping)Do a source level single step over in the currently selected thread.""" |
| return _lldb.SBThread_StepOver(self, *args) |
| |
| def StepInto(self, *args) -> "void": |
| r""" |
| StepInto(SBThread self, lldb::RunMode stop_other_threads=eOnlyDuringStepping) |
| StepInto(SBThread self, char const * target_name, lldb::RunMode stop_other_threads=eOnlyDuringStepping) |
| Step the current thread from the current source line to the line given by end_line, stopping if |
| the thread steps into the function given by target_name. If target_name is None, then stepping will stop |
| in any of the places we would normally stop. |
| Step the current thread from the current source line to the line given by end_line, stopping if |
| the thread steps into the function given by target_name. If target_name is None, then stepping will stop |
| in any of the places we would normally stop. |
| """ |
| return _lldb.SBThread_StepInto(self, *args) |
| |
| def StepOut(self, *args) -> "void": |
| r"""StepOut(SBThread self)Step out of the currently selected thread.""" |
| return _lldb.SBThread_StepOut(self, *args) |
| |
| def StepOutOfFrame(self, *args) -> "void": |
| r"""StepOutOfFrame(SBThread self, SBFrame frame)Step out of the specified frame.""" |
| return _lldb.SBThread_StepOutOfFrame(self, *args) |
| |
| def StepInstruction(self, *args) -> "void": |
| r"""StepInstruction(SBThread self, bool step_over)Do an instruction level single step in the currently selected thread.""" |
| return _lldb.SBThread_StepInstruction(self, *args) |
| |
| def StepOverUntil(self, frame: "SBFrame", file_spec: "SBFileSpec", line: "uint32_t") -> "lldb::SBError": |
| r"""StepOverUntil(SBThread self, SBFrame frame, SBFileSpec file_spec, uint32_t line) -> SBError""" |
| return _lldb.SBThread_StepOverUntil(self, frame, file_spec, line) |
| |
| def StepUsingScriptedThreadPlan(self, *args) -> "lldb::SBError": |
| r""" |
| StepUsingScriptedThreadPlan(SBThread self, char const * script_class_name) -> SBError |
| StepUsingScriptedThreadPlan(SBThread self, char const * script_class_name, bool resume_immediately) -> SBError |
| StepUsingScriptedThreadPlan(SBThread self, char const * script_class_name, SBStructuredData args_data, bool resume_immediately) -> SBError |
| """ |
| return _lldb.SBThread_StepUsingScriptedThreadPlan(self, *args) |
| |
| def JumpToLine(self, file_spec: "SBFileSpec", line: "uint32_t") -> "lldb::SBError": |
| r"""JumpToLine(SBThread self, SBFileSpec file_spec, uint32_t line) -> SBError""" |
| return _lldb.SBThread_JumpToLine(self, file_spec, line) |
| |
| def RunToAddress(self, *args) -> "void": |
| r""" |
| RunToAddress(SBThread self, lldb::addr_t addr) |
| RunToAddress(SBThread self, lldb::addr_t addr, SBError error) |
| """ |
| return _lldb.SBThread_RunToAddress(self, *args) |
| |
| def ReturnFromFrame(self, frame: "SBFrame", return_value: "SBValue") -> "lldb::SBError": |
| r""" |
| |
| Force a return from the frame passed in (and any frames younger than it) |
| without executing any more code in those frames. If return_value contains |
| a valid SBValue, that will be set as the return value from frame. Note, at |
| present only scalar return values are supported. |
| """ |
| return _lldb.SBThread_ReturnFromFrame(self, frame, return_value) |
| |
| def UnwindInnermostExpression(self) -> "lldb::SBError": |
| r""" |
| |
| Unwind the stack frames from the innermost expression evaluation. |
| This API is equivalent to 'thread return -x'. |
| """ |
| return _lldb.SBThread_UnwindInnermostExpression(self) |
| |
| def Suspend(self, *args) -> "bool": |
| r""" |
| Suspend(SBThread self) -> bool |
| Suspend(SBThread self, SBError error) -> bool |
| |
| LLDB currently supports process centric debugging which means when any |
| thread in a process stops, all other threads are stopped. The Suspend() |
| call here tells our process to suspend a thread and not let it run when |
| the other threads in a process are allowed to run. So when |
| SBProcess::Continue() is called, any threads that aren't suspended will |
| be allowed to run. If any of the SBThread functions for stepping are |
| called (StepOver, StepInto, StepOut, StepInstruction, RunToAddres), the |
| thread will now be allowed to run and these functions will simply return. |
| |
| Eventually we plan to add support for thread centric debugging where |
| each thread is controlled individually and each thread would broadcast |
| its state, but we haven't implemented this yet. |
| |
| Likewise the SBThread::Resume() call will again allow the thread to run |
| when the process is continued. |
| |
| Suspend() and Resume() functions are not currently reference counted, if |
| anyone has the need for them to be reference counted, please let us |
| know. |
| """ |
| return _lldb.SBThread_Suspend(self, *args) |
| |
| def Resume(self, *args) -> "bool": |
| r""" |
| Resume(SBThread self) -> bool |
| Resume(SBThread self, SBError error) -> bool |
| """ |
| return _lldb.SBThread_Resume(self, *args) |
| |
| def IsSuspended(self) -> "bool": |
| r"""IsSuspended(SBThread self) -> bool""" |
| return _lldb.SBThread_IsSuspended(self) |
| |
| def IsStopped(self) -> "bool": |
| r"""IsStopped(SBThread self) -> bool""" |
| return _lldb.SBThread_IsStopped(self) |
| |
| def GetNumFrames(self) -> "uint32_t": |
| r"""GetNumFrames(SBThread self) -> uint32_t""" |
| return _lldb.SBThread_GetNumFrames(self) |
| |
| def GetFrameAtIndex(self, idx: "uint32_t") -> "lldb::SBFrame": |
| r"""GetFrameAtIndex(SBThread self, uint32_t idx) -> SBFrame""" |
| return _lldb.SBThread_GetFrameAtIndex(self, idx) |
| |
| def GetSelectedFrame(self) -> "lldb::SBFrame": |
| r"""GetSelectedFrame(SBThread self) -> SBFrame""" |
| return _lldb.SBThread_GetSelectedFrame(self) |
| |
| def SetSelectedFrame(self, frame_idx: "uint32_t") -> "lldb::SBFrame": |
| r"""SetSelectedFrame(SBThread self, uint32_t frame_idx) -> SBFrame""" |
| return _lldb.SBThread_SetSelectedFrame(self, frame_idx) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBThread self) -> SBProcess""" |
| return _lldb.SBThread_GetProcess(self) |
| |
| def GetDescription(self, *args) -> "bool": |
| r""" |
| GetDescription(SBThread self, SBStream description) -> bool |
| GetDescription(SBThread self, SBStream description, bool stop_format) -> bool |
| |
| Get the description strings for this thread that match what the |
| lldb driver will present, using the thread-format (stop_format==false) |
| or thread-stop-format (stop_format = true). |
| """ |
| return _lldb.SBThread_GetDescription(self, *args) |
| |
| def GetStatus(self, status: "SBStream") -> "bool": |
| r"""GetStatus(SBThread self, SBStream status) -> bool""" |
| return _lldb.SBThread_GetStatus(self, status) |
| |
| def __eq__(self, rhs: "SBThread") -> "bool": |
| r"""__eq__(SBThread self, SBThread rhs) -> bool""" |
| return _lldb.SBThread___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBThread") -> "bool": |
| r"""__ne__(SBThread self, SBThread rhs) -> bool""" |
| return _lldb.SBThread___ne__(self, rhs) |
| |
| def GetExtendedBacktraceThread(self, type: "char const *") -> "lldb::SBThread": |
| r""" |
| |
| Given an argument of str to specify the type of thread-origin extended |
| backtrace to retrieve, query whether the origin of this thread is |
| available. An SBThread is retured; SBThread.IsValid will return true |
| if an extended backtrace was available. The returned SBThread is not |
| a part of the SBProcess' thread list and it cannot be manipulated like |
| normal threads -- you cannot step or resume it, for instance -- it is |
| intended to used primarily for generating a backtrace. You may request |
| the returned thread's own thread origin in turn. |
| """ |
| return _lldb.SBThread_GetExtendedBacktraceThread(self, type) |
| |
| def GetExtendedBacktraceOriginatingIndexID(self) -> "uint32_t": |
| r""" |
| |
| Takes no arguments, returns a uint32_t. |
| If this SBThread is an ExtendedBacktrace thread, get the IndexID of the |
| original thread that this ExtendedBacktrace thread represents, if |
| available. The thread that was running this backtrace in the past may |
| not have been registered with lldb's thread index (if it was created, |
| did its work, and was destroyed without lldb ever stopping execution). |
| In that case, this ExtendedBacktrace thread's IndexID will be returned. |
| """ |
| return _lldb.SBThread_GetExtendedBacktraceOriginatingIndexID(self) |
| |
| def GetCurrentException(self) -> "lldb::SBValue": |
| r""" |
| |
| Returns an SBValue object represeting the current exception for the thread, |
| if there is any. Currently, this works for Obj-C code and returns an SBValue |
| representing the NSException object at the throw site or that's currently |
| being processes. |
| """ |
| return _lldb.SBThread_GetCurrentException(self) |
| |
| def GetCurrentExceptionBacktrace(self) -> "lldb::SBThread": |
| r""" |
| |
| Returns a historical (fake) SBThread representing the stack trace of an |
| exception, if there is one for the thread. Currently, this works for Obj-C |
| code, and can retrieve the throw-site backtrace of an NSException object |
| even when the program is no longer at the throw site. |
| """ |
| return _lldb.SBThread_GetCurrentExceptionBacktrace(self) |
| |
| def SafeToCallFunctions(self) -> "bool": |
| r""" |
| |
| Takes no arguments, returns a bool. |
| lldb may be able to detect that function calls should not be executed |
| on a given thread at a particular point in time. It is recommended that |
| this is checked before performing an inferior function call on a given |
| thread. |
| """ |
| return _lldb.SBThread_SafeToCallFunctions(self) |
| |
| def GetSiginfo(self) -> "lldb::SBValue": |
| r""" |
| |
| Retruns a SBValue object representing the siginfo for the current signal. |
| |
| """ |
| return _lldb.SBThread_GetSiginfo(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBThread self) -> std::string""" |
| return _lldb.SBThread___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all frames in a lldb.SBThread object.''' |
| return lldb_iter(self, 'GetNumFrames', 'GetFrameAtIndex') |
| |
| def __len__(self): |
| '''Return the number of frames in a lldb.SBThread object.''' |
| return self.GetNumFrames() |
| |
| class frames_access(object): |
| '''A helper object that will lazily hand out frames for a thread when supplied an index.''' |
| def __init__(self, sbthread): |
| self.sbthread = sbthread |
| |
| def __len__(self): |
| if self.sbthread: |
| return int(self.sbthread.GetNumFrames()) |
| return 0 |
| |
| def __getitem__(self, key): |
| if type(key) is int and key < self.sbthread.GetNumFrames(): |
| return self.sbthread.GetFrameAtIndex(key) |
| return None |
| |
| def get_frames_access_object(self): |
| '''An accessor function that returns a frames_access() object which allows lazy frame access from a lldb.SBThread object.''' |
| return self.frames_access (self) |
| |
| def get_thread_frames(self): |
| '''An accessor function that returns a list() that contains all frames in a lldb.SBThread object.''' |
| frames = [] |
| for frame in self: |
| frames.append(frame) |
| return frames |
| |
| id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''') |
| idx = property(GetIndexID, None, doc='''A read only property that returns the thread index ID as an integer. Thread index ID values start at 1 and increment as threads come and go and can be used to uniquely identify threads.''') |
| return_value = property(GetStopReturnValue, None, doc='''A read only property that returns an lldb object that represents the return value from the last stop (lldb.SBValue) if we just stopped due to stepping out of a function.''') |
| process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that owns this thread.''') |
| num_frames = property(GetNumFrames, None, doc='''A read only property that returns the number of stack frames in this thread as an integer.''') |
| frames = property(get_thread_frames, None, doc='''A read only property that returns a list() of lldb.SBFrame objects for all frames in this thread.''') |
| frame = property(get_frames_access_object, None, doc='''A read only property that returns an object that can be used to access frames as an array ("frame_12 = lldb.thread.frame[12]").''') |
| name = property(GetName, None, doc='''A read only property that returns the name of this thread as a string.''') |
| queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''') |
| queue_id = property(GetQueueID, None, doc='''A read only property that returns the dispatch queue id of this thread as an integer.''') |
| stop_reason = property(GetStopReason, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eStopReason") that represents the reason this thread stopped.''') |
| is_suspended = property(IsSuspended, None, doc='''A read only property that returns a boolean value that indicates if this thread is suspended.''') |
| is_stopped = property(IsStopped, None, doc='''A read only property that returns a boolean value that indicates if this thread is stopped but not exited.''') |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBThread in _lldb: |
| _lldb.SBThread_swigregister(SBThread) |
| |
| def SBThread_GetBroadcasterClassName() -> "char const *": |
| r"""SBThread_GetBroadcasterClassName() -> char const *""" |
| return _lldb.SBThread_GetBroadcasterClassName() |
| |
| def SBThread_EventIsThreadEvent(event: "SBEvent") -> "bool": |
| r"""SBThread_EventIsThreadEvent(SBEvent event) -> bool""" |
| return _lldb.SBThread_EventIsThreadEvent(event) |
| |
| def SBThread_GetStackFrameFromEvent(event: "SBEvent") -> "lldb::SBFrame": |
| r"""SBThread_GetStackFrameFromEvent(SBEvent event) -> SBFrame""" |
| return _lldb.SBThread_GetStackFrameFromEvent(event) |
| |
| def SBThread_GetThreadFromEvent(event: "SBEvent") -> "lldb::SBThread": |
| r"""SBThread_GetThreadFromEvent(SBEvent event) -> SBThread""" |
| return _lldb.SBThread_GetThreadFromEvent(event) |
| |
| class SBThreadCollection(object): |
| r"""Represents a collection of SBThread objects.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBThreadCollection self) -> SBThreadCollection |
| __init__(SBThreadCollection self, SBThreadCollection rhs) -> SBThreadCollection |
| """ |
| _lldb.SBThreadCollection_swiginit(self, _lldb.new_SBThreadCollection(*args)) |
| __swig_destroy__ = _lldb.delete_SBThreadCollection |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBThreadCollection self) -> bool""" |
| return _lldb.SBThreadCollection_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBThreadCollection___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetSize(self) -> "size_t": |
| r"""GetSize(SBThreadCollection self) -> size_t""" |
| return _lldb.SBThreadCollection_GetSize(self) |
| |
| def GetThreadAtIndex(self, idx: "size_t") -> "lldb::SBThread": |
| r"""GetThreadAtIndex(SBThreadCollection self, size_t idx) -> SBThread""" |
| return _lldb.SBThreadCollection_GetThreadAtIndex(self, idx) |
| |
| # Register SBThreadCollection in _lldb: |
| _lldb.SBThreadCollection_swigregister(SBThreadCollection) |
| |
| class SBThreadPlan(object): |
| r""" |
| Represents a plan for the execution control of a given thread. |
| |
| See also :py:class:`SBThread` and :py:class:`SBFrame`. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBThreadPlan self) -> SBThreadPlan |
| __init__(SBThreadPlan self, SBThreadPlan threadPlan) -> SBThreadPlan |
| __init__(SBThreadPlan self, lldb::ThreadPlanSP const & lldb_object_sp) -> SBThreadPlan |
| __init__(SBThreadPlan self, SBThread thread, char const * class_name) -> SBThreadPlan |
| """ |
| _lldb.SBThreadPlan_swiginit(self, _lldb.new_SBThreadPlan(*args)) |
| __swig_destroy__ = _lldb.delete_SBThreadPlan |
| |
| def IsValid(self, *args) -> "bool": |
| r""" |
| IsValid(SBThreadPlan self) -> bool |
| IsValid(SBThreadPlan self) -> bool |
| """ |
| return _lldb.SBThreadPlan_IsValid(self, *args) |
| |
| def __nonzero__(self): |
| return _lldb.SBThreadPlan___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBThreadPlan self)""" |
| return _lldb.SBThreadPlan_Clear(self) |
| |
| def GetStopReason(self) -> "lldb::StopReason": |
| r"""GetStopReason(SBThreadPlan self) -> lldb::StopReason""" |
| return _lldb.SBThreadPlan_GetStopReason(self) |
| |
| def GetStopReasonDataCount(self) -> "size_t": |
| r""" |
| GetStopReasonDataCount(SBThreadPlan self) -> size_t |
| |
| Get the number of words associated with the stop reason. |
| See also GetStopReasonDataAtIndex(). |
| """ |
| return _lldb.SBThreadPlan_GetStopReasonDataCount(self) |
| |
| def GetStopReasonDataAtIndex(self, idx: "uint32_t") -> "uint64_t": |
| r""" |
| GetStopReasonDataAtIndex(SBThreadPlan self, uint32_t idx) -> uint64_t |
| |
| Get information associated with a stop reason. |
| |
| Breakpoint stop reasons will have data that consists of pairs of |
| breakpoint IDs followed by the breakpoint location IDs (they always come |
| in pairs). |
| |
| Stop Reason Count Data Type |
| ======================== ===== ========================================= |
| eStopReasonNone 0 |
| eStopReasonTrace 0 |
| eStopReasonBreakpoint N duple: {breakpoint id, location id} |
| eStopReasonWatchpoint 1 watchpoint id |
| eStopReasonSignal 1 unix signal number |
| eStopReasonException N exception data |
| eStopReasonExec 0 |
| eStopReasonFork 1 pid of the child process |
| eStopReasonVFork 1 pid of the child process |
| eStopReasonVForkDone 0 |
| eStopReasonPlanComplete 0 |
| """ |
| return _lldb.SBThreadPlan_GetStopReasonDataAtIndex(self, idx) |
| |
| def GetThread(self) -> "lldb::SBThread": |
| r"""GetThread(SBThreadPlan self) -> SBThread""" |
| return _lldb.SBThreadPlan_GetThread(self) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBThreadPlan self, SBStream description) -> bool""" |
| return _lldb.SBThreadPlan_GetDescription(self, description) |
| |
| def SetPlanComplete(self, success: "bool") -> "void": |
| r"""SetPlanComplete(SBThreadPlan self, bool success)""" |
| return _lldb.SBThreadPlan_SetPlanComplete(self, success) |
| |
| def IsPlanComplete(self) -> "bool": |
| r"""IsPlanComplete(SBThreadPlan self) -> bool""" |
| return _lldb.SBThreadPlan_IsPlanComplete(self) |
| |
| def IsPlanStale(self) -> "bool": |
| r"""IsPlanStale(SBThreadPlan self) -> bool""" |
| return _lldb.SBThreadPlan_IsPlanStale(self) |
| |
| def GetStopOthers(self) -> "bool": |
| r""" |
| GetStopOthers(SBThreadPlan self) -> bool |
| Return whether this plan will ask to stop other threads when it runs. |
| """ |
| return _lldb.SBThreadPlan_GetStopOthers(self) |
| |
| def SetStopOthers(self, stop_others: "bool") -> "void": |
| r"""SetStopOthers(SBThreadPlan self, bool stop_others)""" |
| return _lldb.SBThreadPlan_SetStopOthers(self, stop_others) |
| |
| def QueueThreadPlanForStepOverRange(self, start_address: "SBAddress", range_size: "lldb::addr_t") -> "lldb::SBThreadPlan": |
| r"""QueueThreadPlanForStepOverRange(SBThreadPlan self, SBAddress start_address, lldb::addr_t range_size) -> SBThreadPlan""" |
| return _lldb.SBThreadPlan_QueueThreadPlanForStepOverRange(self, start_address, range_size) |
| |
| def QueueThreadPlanForStepInRange(self, start_address: "SBAddress", range_size: "lldb::addr_t") -> "lldb::SBThreadPlan": |
| r"""QueueThreadPlanForStepInRange(SBThreadPlan self, SBAddress start_address, lldb::addr_t range_size) -> SBThreadPlan""" |
| return _lldb.SBThreadPlan_QueueThreadPlanForStepInRange(self, start_address, range_size) |
| |
| def QueueThreadPlanForStepOut(self, frame_idx_to_step_to: "uint32_t", first_insn: "bool"=False) -> "lldb::SBThreadPlan": |
| r"""QueueThreadPlanForStepOut(SBThreadPlan self, uint32_t frame_idx_to_step_to, bool first_insn=False) -> SBThreadPlan""" |
| return _lldb.SBThreadPlan_QueueThreadPlanForStepOut(self, frame_idx_to_step_to, first_insn) |
| |
| def QueueThreadPlanForRunToAddress(self, address: "SBAddress") -> "lldb::SBThreadPlan": |
| r"""QueueThreadPlanForRunToAddress(SBThreadPlan self, SBAddress address) -> SBThreadPlan""" |
| return _lldb.SBThreadPlan_QueueThreadPlanForRunToAddress(self, address) |
| |
| def QueueThreadPlanForStepScripted(self, *args) -> "lldb::SBThreadPlan": |
| r""" |
| QueueThreadPlanForStepScripted(SBThreadPlan self, char const * script_class_name) -> SBThreadPlan |
| QueueThreadPlanForStepScripted(SBThreadPlan self, char const * script_class_name, SBError error) -> SBThreadPlan |
| QueueThreadPlanForStepScripted(SBThreadPlan self, char const * script_class_name, SBStructuredData args_data, SBError error) -> SBThreadPlan |
| """ |
| return _lldb.SBThreadPlan_QueueThreadPlanForStepScripted(self, *args) |
| |
| # Register SBThreadPlan in _lldb: |
| _lldb.SBThreadPlan_swigregister(SBThreadPlan) |
| |
| class SBTrace(object): |
| r"""Represents a processor trace.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self): |
| r"""__init__(SBTrace self) -> SBTrace""" |
| _lldb.SBTrace_swiginit(self, _lldb.new_SBTrace()) |
| |
| def GetStartConfigurationHelp(self) -> "char const *": |
| r"""GetStartConfigurationHelp(SBTrace self) -> char const *""" |
| return _lldb.SBTrace_GetStartConfigurationHelp(self) |
| |
| def Start(self, *args) -> "lldb::SBError": |
| r""" |
| Start(SBTrace self, SBStructuredData configuration) -> SBError |
| Start(SBTrace self, SBThread thread, SBStructuredData configuration) -> SBError |
| """ |
| return _lldb.SBTrace_Start(self, *args) |
| |
| def Stop(self, *args) -> "lldb::SBError": |
| r""" |
| Stop(SBTrace self) -> SBError |
| Stop(SBTrace self, SBThread thread) -> SBError |
| """ |
| return _lldb.SBTrace_Stop(self, *args) |
| |
| def __nonzero__(self): |
| return _lldb.SBTrace___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTrace self) -> bool""" |
| return _lldb.SBTrace_IsValid(self) |
| __swig_destroy__ = _lldb.delete_SBTrace |
| |
| # Register SBTrace in _lldb: |
| _lldb.SBTrace_swigregister(SBTrace) |
| |
| class SBTypeMember(object): |
| r"""Represents a member of a type.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeMember self) -> SBTypeMember |
| __init__(SBTypeMember self, SBTypeMember rhs) -> SBTypeMember |
| """ |
| _lldb.SBTypeMember_swiginit(self, _lldb.new_SBTypeMember(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeMember |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeMember self) -> bool""" |
| return _lldb.SBTypeMember_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeMember___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBTypeMember self) -> char const *""" |
| return _lldb.SBTypeMember_GetName(self) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBTypeMember self) -> SBType""" |
| return _lldb.SBTypeMember_GetType(self) |
| |
| def GetOffsetInBytes(self) -> "uint64_t": |
| r"""GetOffsetInBytes(SBTypeMember self) -> uint64_t""" |
| return _lldb.SBTypeMember_GetOffsetInBytes(self) |
| |
| def GetOffsetInBits(self) -> "uint64_t": |
| r"""GetOffsetInBits(SBTypeMember self) -> uint64_t""" |
| return _lldb.SBTypeMember_GetOffsetInBits(self) |
| |
| def IsBitfield(self) -> "bool": |
| r"""IsBitfield(SBTypeMember self) -> bool""" |
| return _lldb.SBTypeMember_IsBitfield(self) |
| |
| def GetBitfieldSizeInBits(self) -> "uint32_t": |
| r"""GetBitfieldSizeInBits(SBTypeMember self) -> uint32_t""" |
| return _lldb.SBTypeMember_GetBitfieldSizeInBits(self) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeMember self) -> std::string""" |
| return _lldb.SBTypeMember___str__(self) |
| |
| name = property(GetName, None, doc='''A read only property that returns the name for this member as a string.''') |
| type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this member.''') |
| byte_offset = property(GetOffsetInBytes, None, doc='''A read only property that returns offset in bytes for this member as an integer.''') |
| bit_offset = property(GetOffsetInBits, None, doc='''A read only property that returns offset in bits for this member as an integer.''') |
| is_bitfield = property(IsBitfield, None, doc='''A read only property that returns true if this member is a bitfield.''') |
| bitfield_bit_size = property(GetBitfieldSizeInBits, None, doc='''A read only property that returns the bitfield size in bits for this member as an integer, or zero if this member is not a bitfield.''') |
| |
| |
| # Register SBTypeMember in _lldb: |
| _lldb.SBTypeMember_swigregister(SBTypeMember) |
| |
| class SBTypeMemberFunction(object): |
| r"""Represents a member function of a type.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeMemberFunction self) -> SBTypeMemberFunction |
| __init__(SBTypeMemberFunction self, SBTypeMemberFunction rhs) -> SBTypeMemberFunction |
| """ |
| _lldb.SBTypeMemberFunction_swiginit(self, _lldb.new_SBTypeMemberFunction(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeMemberFunction |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeMemberFunction self) -> bool""" |
| return _lldb.SBTypeMemberFunction_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeMemberFunction___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBTypeMemberFunction self) -> char const *""" |
| return _lldb.SBTypeMemberFunction_GetName(self) |
| |
| def GetDemangledName(self) -> "char const *": |
| r"""GetDemangledName(SBTypeMemberFunction self) -> char const *""" |
| return _lldb.SBTypeMemberFunction_GetDemangledName(self) |
| |
| def GetMangledName(self) -> "char const *": |
| r"""GetMangledName(SBTypeMemberFunction self) -> char const *""" |
| return _lldb.SBTypeMemberFunction_GetMangledName(self) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBTypeMemberFunction self) -> SBType""" |
| return _lldb.SBTypeMemberFunction_GetType(self) |
| |
| def GetReturnType(self) -> "lldb::SBType": |
| r"""GetReturnType(SBTypeMemberFunction self) -> SBType""" |
| return _lldb.SBTypeMemberFunction_GetReturnType(self) |
| |
| def GetNumberOfArguments(self) -> "uint32_t": |
| r"""GetNumberOfArguments(SBTypeMemberFunction self) -> uint32_t""" |
| return _lldb.SBTypeMemberFunction_GetNumberOfArguments(self) |
| |
| def GetArgumentTypeAtIndex(self, arg2: "uint32_t") -> "lldb::SBType": |
| r"""GetArgumentTypeAtIndex(SBTypeMemberFunction self, uint32_t arg2) -> SBType""" |
| return _lldb.SBTypeMemberFunction_GetArgumentTypeAtIndex(self, arg2) |
| |
| def GetKind(self) -> "lldb::MemberFunctionKind": |
| r"""GetKind(SBTypeMemberFunction self) -> lldb::MemberFunctionKind""" |
| return _lldb.SBTypeMemberFunction_GetKind(self) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeMemberFunction self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeMemberFunction_GetDescription(self, description, description_level) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeMemberFunction self) -> std::string""" |
| return _lldb.SBTypeMemberFunction___str__(self) |
| |
| # Register SBTypeMemberFunction in _lldb: |
| _lldb.SBTypeMemberFunction_swigregister(SBTypeMemberFunction) |
| |
| class SBType(object): |
| r""" |
| Represents a data type in lldb. |
| |
| The actual characteristics of each type are defined by the semantics of the |
| programming language and the specific language implementation that was used |
| to compile the target program. See the language-specific notes in the |
| documentation of each method. |
| |
| SBType instances can be obtained by a variety of methods. |
| `SBTarget.FindFirstType` and `SBModule.FindFirstType` can be used to create |
| `SBType` representations of types in executables/libraries with debug |
| information. For some languages such as C, C++ and Objective-C it is possible |
| to create new types by evaluating expressions that define a new type. |
| |
| Note that most `SBType` properties are computed independently of any runtime |
| information so for dynamic languages the functionality can be very limited. |
| `SBValue` can be used to represent runtime values which then can be more |
| accurately queried for certain information such as byte size. |
| |
| |
| SBType supports the eq/ne operator. For example,:: |
| |
| //main.cpp: |
| |
| class Task { |
| public: |
| int id; |
| Task *next; |
| Task(int i, Task *n): |
| id(i), |
| next(n) |
| {} |
| }; |
| |
| int main (int argc, char const *argv[]) |
| { |
| Task *task_head = new Task(-1, NULL); |
| Task *task1 = new Task(1, NULL); |
| Task *task2 = new Task(2, NULL); |
| Task *task3 = new Task(3, NULL); // Orphaned. |
| Task *task4 = new Task(4, NULL); |
| Task *task5 = new Task(5, NULL); |
| |
| task_head->next = task1; |
| task1->next = task2; |
| task2->next = task4; |
| task4->next = task5; |
| |
| int total = 0; |
| Task *t = task_head; |
| while (t != NULL) { |
| if (t->id >= 0) |
| ++total; |
| t = t->next; |
| } |
| printf('We have a total number of %d tasks\n', total); |
| |
| // This corresponds to an empty task list. |
| Task *empty_task_head = new Task(-1, NULL); |
| |
| return 0; // Break at this line |
| } |
| |
| # find_type.py: |
| |
| # Get the type 'Task'. |
| task_type = target.FindFirstType('Task') |
| self.assertTrue(task_type) |
| |
| # Get the variable 'task_head'. |
| frame0.FindVariable('task_head') |
| task_head_type = task_head.GetType() |
| self.assertTrue(task_head_type.IsPointerType()) |
| |
| # task_head_type is 'Task *'. |
| task_pointer_type = task_type.GetPointerType() |
| self.assertTrue(task_head_type == task_pointer_type) |
| |
| # Get the child mmember 'id' from 'task_head'. |
| id = task_head.GetChildMemberWithName('id') |
| id_type = id.GetType() |
| |
| # SBType.GetBasicType() takes an enum 'BasicType' (lldb-enumerations.h). |
| int_type = id_type.GetBasicType(lldb.eBasicTypeInt) |
| # id_type and int_type should be the same type! |
| self.assertTrue(id_type == int_type) |
| |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBType self) -> SBType |
| __init__(SBType self, SBType rhs) -> SBType |
| """ |
| _lldb.SBType_swiginit(self, _lldb.new_SBType(*args)) |
| __swig_destroy__ = _lldb.delete_SBType |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBType self) -> bool""" |
| return _lldb.SBType_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBType___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetByteSize(self) -> "uint64_t": |
| r""" |
| GetByteSize(SBType self) -> uint64_t |
| Returns the number of bytes a variable with the given types occupies in memory. |
| |
| Returns ``0`` if the size can't be determined. |
| |
| If a type occupies ``N`` bytes + ``M`` bits in memory, this function returns |
| the rounded up amount of bytes (i.e., if ``M`` is ``0``, |
| this function returns ``N`` and otherwise ``N + 1``). |
| |
| Language-specific behaviour: |
| |
| * C: The output is expected to match the value of ``sizeof(Type)``. If |
| ``sizeof(Type)`` is not a valid expression for the given type, the |
| function returns ``0``. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. For Objective-C classes this always returns |
| `0`` as the actual size depends on runtime information. |
| |
| """ |
| return _lldb.SBType_GetByteSize(self) |
| |
| def IsPointerType(self) -> "bool": |
| r""" |
| IsPointerType(SBType self) -> bool |
| Returns true if this type is a pointer type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns true for C pointer types (or typedefs of these types). |
| * C++: Pointer types include the C pointer types as well as pointers to data |
| mebers or member functions. |
| * Objective-C: Pointer types include the C pointer types. ``id``, ``Class`` |
| and pointers to blocks are also considered pointer types. |
| |
| """ |
| return _lldb.SBType_IsPointerType(self) |
| |
| def IsReferenceType(self) -> "bool": |
| r""" |
| IsReferenceType(SBType self) -> bool |
| Returns true if this type is a reference type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns false for all types. |
| * C++: Both l-value and r-value references are considered reference types. |
| * Objective-C: Returns false for all types. |
| |
| """ |
| return _lldb.SBType_IsReferenceType(self) |
| |
| def IsFunctionType(self) -> "bool": |
| r"""IsFunctionType(SBType self) -> bool""" |
| return _lldb.SBType_IsFunctionType(self) |
| |
| def IsPolymorphicClass(self) -> "bool": |
| r""" |
| IsPolymorphicClass(SBType self) -> bool |
| Returns true if this type is a polymorphic type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns false for all types. |
| * C++: Returns true if the type is a class type that contains at least one |
| virtual member function or if at least one of its base classes is |
| considered a polymorphic type. |
| * Objective-C: Returns false for all types. |
| |
| """ |
| return _lldb.SBType_IsPolymorphicClass(self) |
| |
| def IsArrayType(self) -> "bool": |
| r""" |
| IsArrayType(SBType self) -> bool |
| Returns true if this type is an array type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns true if the types is an array type. This includes incomplete |
| array types ``T[]`` and array types with integer (``T[1]``) or variable |
| length (``T[some_variable]``). Pointer types are not considered arrays. |
| * C++: Includes C's array types and dependent array types (i.e., array types |
| in templates which size depends on template arguments). |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_IsArrayType(self) |
| |
| def IsVectorType(self) -> "bool": |
| r""" |
| IsVectorType(SBType self) -> bool |
| Returns true if this type is a vector type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns true if the types is a vector type created with |
| GCC's ``vector_size`` or Clang's ``ext_vector_type`` feature. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_IsVectorType(self) |
| |
| def IsTypedefType(self) -> "bool": |
| r""" |
| IsTypedefType(SBType self) -> bool |
| Returns true if this type is a typedef. |
| |
| Language-specific behaviour: |
| |
| * C: Returns true if the type is a C typedef. |
| * C++: Same as in C. Also treats type aliases as typedefs. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_IsTypedefType(self) |
| |
| def IsAnonymousType(self) -> "bool": |
| r""" |
| IsAnonymousType(SBType self) -> bool |
| Returns true if this type is an anonymous type. |
| |
| Language-specific behaviour: |
| |
| * C: Returns true for anonymous unions. Also returns true for |
| anonymous structs (which are a GNU language extension). |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_IsAnonymousType(self) |
| |
| def IsScopedEnumerationType(self) -> "bool": |
| r""" |
| IsScopedEnumerationType(SBType self) -> bool |
| Returns true if this type is a scoped enum. |
| |
| Language-specific behaviour: |
| |
| * C: Returns false for all types. |
| * C++: Return true only for C++11 scoped enums. |
| * Objective-C: Returns false for all types. |
| |
| """ |
| return _lldb.SBType_IsScopedEnumerationType(self) |
| |
| def GetPointerType(self) -> "lldb::SBType": |
| r""" |
| GetPointerType(SBType self) -> SBType |
| Returns a type that represents a pointer to this type. |
| |
| If the type system of the current language can't represent a pointer to this |
| type or this type is invalid, an invalid `SBType` is returned. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the pointer type of this type. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetPointerType(self) |
| |
| def GetPointeeType(self) -> "lldb::SBType": |
| r""" |
| GetPointeeType(SBType self) -> SBType |
| Returns the underlying pointee type. |
| |
| If this type is a pointer type as specified by `IsPointerType` then this |
| returns the underlying type. If this is not a pointer type or an invalid |
| `SBType` then this returns an invalid `SBType`. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the underlying type for for C pointer types or typedefs of |
| these types). For example, ``int *`` will return ``int``. |
| * C++: Same as in C. Returns an `SBType` representation for data members/ |
| member functions in case the `SBType` is a pointer to data member or |
| pointer to member function. |
| * Objective-C: Same as in C. The pointee type of ``id`` and ``Class`` is |
| an invalid `SBType`. The pointee type of pointers Objective-C types is an |
| `SBType` for the non-pointer type of the respective type. For example, |
| ``NSString *`` will return ``NSString`` as a pointee type. |
| |
| """ |
| return _lldb.SBType_GetPointeeType(self) |
| |
| def GetReferenceType(self) -> "lldb::SBType": |
| r""" |
| GetReferenceType(SBType self) -> SBType |
| Returns a type that represents a reference to this type. |
| |
| If the type system of the current language can't represent a reference to |
| this type, an invalid `SBType` is returned. |
| |
| Language-specific behaviour: |
| |
| * C: Currently assumes the type system is C++ and returns an l-value |
| reference type. For example, ``int`` will return ``int&``. This behavior |
| is likely to change in the future and shouldn't be relied on. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetReferenceType(self) |
| |
| def GetTypedefedType(self) -> "lldb::SBType": |
| r""" |
| GetTypedefedType(SBType self) -> SBType |
| Returns the underlying type of a typedef. |
| |
| If this type is a typedef as designated by `IsTypedefType`, then the |
| underlying type is being returned. Otherwise an invalid `SBType` is |
| returned. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the underlying type of a typedef type. |
| * C++: Same as in C. For type aliases, the underlying type is returned. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetTypedefedType(self) |
| |
| def GetDereferencedType(self) -> "lldb::SBType": |
| r""" |
| GetDereferencedType(SBType self) -> SBType |
| Returns the underlying type of a reference type. |
| |
| If this type is a reference as designated by `IsReferenceType`, then the |
| underlying type is being returned. Otherwise an invalid `SBType` is |
| returned. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns an invalid type. |
| * C++: For l-value and r-value references the underlying type is returned. |
| For example, ``int &`` will return ``int``. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetDereferencedType(self) |
| |
| def GetUnqualifiedType(self) -> "lldb::SBType": |
| r""" |
| GetUnqualifiedType(SBType self) -> SBType |
| Returns the unqualified version of this type. |
| |
| Language-specific behaviour: |
| |
| * C: If this type with any const or volatile specifier removed. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetUnqualifiedType(self) |
| |
| def GetCanonicalType(self) -> "lldb::SBType": |
| r"""GetCanonicalType(SBType self) -> SBType""" |
| return _lldb.SBType_GetCanonicalType(self) |
| |
| def GetEnumerationIntegerType(self) -> "lldb::SBType": |
| r""" |
| GetEnumerationIntegerType(SBType self) -> SBType |
| Returns the underlying integer type if this is an enumeration type. |
| |
| If this type is an invalid `SBType` or not an enumeration type an invalid |
| `SBType` is returned. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the underlying type for enums. |
| * C++: Same as in C but also returns the underlying type for scoped enums. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetEnumerationIntegerType(self) |
| |
| def GetArrayElementType(self) -> "lldb::SBType": |
| r""" |
| GetArrayElementType(SBType self) -> SBType |
| Returns the array element type if this type is an array type. |
| |
| Otherwise returns an invalid `SBType` if this type is invalid or not an |
| array type. |
| |
| Language-specific behaviour: |
| |
| * C: If this is an array type (see `IsArrayType`) such as ``T[]``, returns |
| the element type. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| See also `IsArrayType`. |
| |
| """ |
| return _lldb.SBType_GetArrayElementType(self) |
| |
| def GetArrayType(self, size: "uint64_t") -> "lldb::SBType": |
| r""" |
| GetArrayType(SBType self, uint64_t size) -> SBType |
| Returns the array type with the given constant size. |
| |
| Language-specific behaviour: |
| |
| * C: Returns a constant-size array `T[size]` for any non-void type. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| See also `IsArrayType` and `GetArrayElementType`. |
| |
| """ |
| return _lldb.SBType_GetArrayType(self, size) |
| |
| def GetVectorElementType(self) -> "lldb::SBType": |
| r""" |
| GetVectorElementType(SBType self) -> SBType |
| Returns the vector element type if this type is a vector type. |
| |
| Otherwise returns an invalid `SBType` if this type is invalid or not a |
| vector type. |
| |
| Language-specific behaviour: |
| |
| * C: If this is a vector type (see `IsVectorType`), returns the element |
| type. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| See also `IsVectorType`. |
| |
| """ |
| return _lldb.SBType_GetVectorElementType(self) |
| |
| def GetBasicType(self, *args) -> "lldb::SBType": |
| r""" |
| GetBasicType(SBType self) -> lldb::BasicType |
| GetBasicType(SBType self, lldb::BasicType type) -> SBType |
| Returns the `BasicType` value that is most appropriate to this type. |
| |
| Returns `eBasicTypeInvalid` if no appropriate `BasicType` was found or this |
| type is invalid. See the `BasicType` documentation for the language-specific m |
| aning of each `BasicType` value. |
| |
| **Overload behaviour:** When called with a `BasicType` parameter, the |
| following behaviour applies: |
| |
| Returns the `SBType` that represents the passed `BasicType` value. Returns |
| an invalid `SBType` if no fitting `SBType` could be created. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the respective builtin type. Note that some types |
| (e.g. ``__uint128_t``) might even be successfully created even if they are |
| not available on the target platform. C++ and Objective-C specific types |
| might also be created even if the target program is not written in C++ or |
| Objective-C. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetBasicType(self, *args) |
| |
| def GetNumberOfFields(self) -> "uint32_t": |
| r""" |
| GetNumberOfFields(SBType self) -> uint32_t |
| Returns the number of fields of this type. |
| |
| Returns ``0`` if this type does not have fields. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the number of fields if the type is a struct. If the type |
| contains an anonymous struct/union it only counts as a single field (even |
| if the struct/union contains several fields). |
| * C++: Returns the number of non-static fields if the type is a |
| struct/class. If the type contains an anonymous struct/union it only |
| counts as a single field (even if the struct/union contains several |
| fields). The fields of any base classes are not included in the count. |
| * Objective-C: Same as in C for structs. For Objective-C classes the number |
| of ivars is returned. |
| |
| See also `GetFieldAtIndex`. |
| |
| """ |
| return _lldb.SBType_GetNumberOfFields(self) |
| |
| def GetNumberOfDirectBaseClasses(self) -> "uint32_t": |
| r""" |
| GetNumberOfDirectBaseClasses(SBType self) -> uint32_t |
| Returns the number of base/parent classes of this type. |
| |
| Returns ``0`` if this type doesn't have any base classes. |
| |
| Language-specific behaviour: |
| |
| * C: Returns always ``0``. |
| * C++: The number of direct non-virtual base classes if this type is |
| a class. |
| * Objective-C: The number of super classes for Objective-C classes. |
| As Objective-C doesn't have multiple inheritance this is usually returns 1 |
| except for NSObject. |
| |
| """ |
| return _lldb.SBType_GetNumberOfDirectBaseClasses(self) |
| |
| def GetNumberOfVirtualBaseClasses(self) -> "uint32_t": |
| r""" |
| GetNumberOfVirtualBaseClasses(SBType self) -> uint32_t |
| Returns the number of virtual base/parent classes of this type |
| |
| Returns ``0`` if this type doesn't have any base classes. |
| |
| Language-specific behaviour: |
| |
| * C: Returns always ``0``. |
| * C++: The number of direct virtual base classes if this type is a |
| class. |
| * Objective-C: Returns always ``0``. |
| |
| """ |
| return _lldb.SBType_GetNumberOfVirtualBaseClasses(self) |
| |
| def GetFieldAtIndex(self, idx: "uint32_t") -> "lldb::SBTypeMember": |
| r""" |
| GetFieldAtIndex(SBType self, uint32_t idx) -> SBTypeMember |
| Returns the field at the given index. |
| |
| Returns an invalid `SBType` if the index is out of range or the current |
| type doesn't have any fields. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the field with the given index for struct types. Fields are |
| ordered/indexed starting from ``0`` for the first field in a struct (as |
| declared in the definition). |
| * C++: Returns the non-static field with the given index for struct types. |
| Fields are ordered/indexed starting from ``0`` for the first field in a |
| struct (as declared in the definition). |
| * Objective-C: Same as in C for structs. For Objective-C classes the ivar |
| with the given index is returned. ivars are indexed starting from ``0``. |
| |
| """ |
| return _lldb.SBType_GetFieldAtIndex(self, idx) |
| |
| def GetDirectBaseClassAtIndex(self, idx: "uint32_t") -> "lldb::SBTypeMember": |
| r""" |
| GetDirectBaseClassAtIndex(SBType self, uint32_t idx) -> SBTypeMember |
| Returns the direct base class as indexed by `GetNumberOfDirectBaseClasses`. |
| |
| Returns an invalid SBTypeMember if the index is invalid or this SBType is |
| invalid. |
| |
| """ |
| return _lldb.SBType_GetDirectBaseClassAtIndex(self, idx) |
| |
| def GetVirtualBaseClassAtIndex(self, idx: "uint32_t") -> "lldb::SBTypeMember": |
| r""" |
| GetVirtualBaseClassAtIndex(SBType self, uint32_t idx) -> SBTypeMember |
| Returns the virtual base class as indexed by |
| `GetNumberOfVirtualBaseClasses`. |
| |
| Returns an invalid SBTypeMember if the index is invalid or this SBType is |
| invalid. |
| |
| """ |
| return _lldb.SBType_GetVirtualBaseClassAtIndex(self, idx) |
| |
| def GetEnumMembers(self) -> "lldb::SBTypeEnumMemberList": |
| r""" |
| GetEnumMembers(SBType self) -> SBTypeEnumMemberList |
| Returns the `BasicType` value that is most appropriate to this type. |
| |
| Returns `eBasicTypeInvalid` if no appropriate `BasicType` was found or this |
| type is invalid. See the `BasicType` documentation for the language-specific m |
| aning of each `BasicType` value. |
| |
| **Overload behaviour:** When called with a `BasicType` parameter, the |
| following behaviour applies: |
| |
| Returns the `SBType` that represents the passed `BasicType` value. Returns |
| an invalid `SBType` if no fitting `SBType` could be created. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the respective builtin type. Note that some types |
| (e.g. ``__uint128_t``) might even be successfully created even if they are |
| not available on the target platform. C++ and Objective-C specific types |
| might also be created even if the target program is not written in C++ or |
| Objective-C. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetEnumMembers(self) |
| |
| def GetModule(self) -> "lldb::SBModule": |
| r""" |
| GetModule(SBType self) -> SBModule |
| Returns the `SBModule` this `SBType` belongs to. |
| |
| Returns no `SBModule` if this type does not belong to any specific |
| `SBModule` or this `SBType` is invalid. An invalid `SBModule` might also |
| indicate that once came from an `SBModule` but LLDB could no longer |
| determine the original module. |
| |
| """ |
| return _lldb.SBType_GetModule(self) |
| |
| def GetName(self) -> "char const *": |
| r""" |
| GetName() -> string |
| Returns the name of this type. |
| |
| Returns an empty string if an error occurred or this type is invalid. |
| |
| Use this function when trying to match a specific type by name in a script. |
| The names returned by this function try to uniquely identify a name but |
| conflicts can occur (for example, if a C++ program contains two different |
| classes with the same name in different translation units. `GetName` can |
| return the same name for both class types.) |
| |
| |
| Language-specific behaviour: |
| |
| * C: The name of the type. For structs the ``struct`` prefix is omitted. |
| * C++: Returns the qualified name of the type (including anonymous/inline |
| namespaces and all template arguments). |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetName(self) |
| |
| def GetDisplayTypeName(self) -> "char const *": |
| r""" |
| GetDisplayTypeName() -> string |
| Returns the name of this type in a user-friendly format. |
| |
| Returns an empty string if an error occurred or this type is invalid. |
| |
| Use this function when displaying a type name to the user. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the type name. For structs the ``struct`` prefix is omitted. |
| * C++: Returns the qualified name. Anonymous/inline namespaces are omitted. |
| Template arguments that match their default value might also be hidden |
| (this functionality depends on whether LLDB can determine the template's |
| default arguments). |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType_GetDisplayTypeName(self) |
| |
| def GetTypeClass(self) -> "lldb::TypeClass": |
| r""" |
| GetTypeClass() -> TypeClass |
| Returns the `TypeClass` for this type. |
| |
| Returns an `eTypeClassInvalid` if this `SBType` is invalid. |
| |
| See `TypeClass` for the language-specific meaning of each `TypeClass` value. |
| |
| """ |
| return _lldb.SBType_GetTypeClass(self) |
| |
| def GetNumberOfTemplateArguments(self) -> "uint32_t": |
| r""" |
| GetNumberOfTemplateArguments(SBType self) -> uint32_t |
| Returns the number of template arguments of this type. |
| |
| Returns ``0`` if this type is not a template. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns ``0``. |
| * C++: If this type is a class template instantiation then this returns the |
| number of template parameters that were used in this instantiation. This i |
| cludes both explicit and implicit template parameters. |
| * Objective-C: Always returns ``0``. |
| |
| """ |
| return _lldb.SBType_GetNumberOfTemplateArguments(self) |
| |
| def GetTemplateArgumentType(self, idx: "uint32_t") -> "lldb::SBType": |
| r""" |
| GetTemplateArgumentType(SBType self, uint32_t idx) -> SBType |
| Returns the type of the template argument with the given index. |
| |
| Returns an invalid `SBType` if there is no template argument with the given |
| index or this type is not a template. The first template argument has the |
| index ``0``. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns an invalid SBType. |
| * C++: If this type is a class template instantiation and the template |
| parameter with the given index is a type template parameter, then this |
| returns the type of that parameter. Otherwise returns an invalid `SBType`. |
| * Objective-C: Always returns an invalid SBType. |
| |
| """ |
| return _lldb.SBType_GetTemplateArgumentType(self, idx) |
| |
| def GetTemplateArgumentKind(self, idx: "uint32_t") -> "lldb::TemplateArgumentKind": |
| r""" |
| GetTemplateArgumentKind(SBType self, uint32_t idx) -> lldb::TemplateArgumentKind |
| Returns the kind of the template argument with the given index. |
| |
| Returns `eTemplateArgumentKindNull` if there is no template argument |
| with the given index or this type is not a template. The first template |
| argument has the index ``0``. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns `eTemplateArgumentKindNull`. |
| * C++: If this type is a class template instantiation then this returns |
| the appropriate `TemplateArgument` value for the parameter with the given |
| index. See the documentation of `TemplateArgument` for how certain C++ |
| template parameter kinds are mapped to `TemplateArgument` values. |
| * Objective-C: Always returns `eTemplateArgumentKindNull`. |
| |
| """ |
| return _lldb.SBType_GetTemplateArgumentKind(self, idx) |
| |
| def GetFunctionReturnType(self) -> "lldb::SBType": |
| r""" |
| GetFunctionReturnType(SBType self) -> SBType |
| Returns the return type if this type represents a function. |
| |
| Returns an invalid `SBType` if this type is not a function type or invalid. |
| |
| Language-specific behaviour: |
| |
| * C: For functions return the return type. Returns an invalid `SBType` if |
| this type is a function pointer type. |
| * C++: Same as in C for functions and instantiated template functions. |
| Member functions are also considered functions. For functions that have |
| their return type specified by a placeholder type specifier (``auto``) |
| this returns the deduced return type. |
| * Objective-C: Same as in C for functions. For Objective-C methods this |
| returns the return type of the method. |
| |
| """ |
| return _lldb.SBType_GetFunctionReturnType(self) |
| |
| def GetFunctionArgumentTypes(self) -> "lldb::SBTypeList": |
| r""" |
| GetFunctionArgumentTypes(SBType self) -> SBTypeList |
| Returns the list of argument types if this type represents a function. |
| |
| Returns an invalid `SBType` if this type is not a function type or invalid. |
| |
| Language-specific behaviour: |
| |
| * C: For functions return the types of each parameter. Returns an invalid |
| `SBType` if this type is a function pointer. For variadic functions this |
| just returns the list of parameters before the variadic arguments. |
| * C++: Same as in C for functions and instantiated template functions. |
| Member functions are also considered functions. |
| * Objective-C: Always returns an invalid SBType for Objective-C methods. |
| |
| """ |
| return _lldb.SBType_GetFunctionArgumentTypes(self) |
| |
| def GetNumberOfMemberFunctions(self) -> "uint32_t": |
| r""" |
| GetNumberOfMemberFunctions(SBType self) -> uint32_t |
| Returns the number of member functions of this type. |
| |
| Returns ``0`` if an error occurred or this type is invalid. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns ``0``. |
| * C++: If this type represents a struct/class, then the number of |
| member functions (static and non-static) is returned. The count includes |
| constructors and destructors (both explicit and implicit). Member |
| functions of base classes are not included in the count. |
| * Objective-C: If this type represents a struct/class, then the |
| number of methods is returned. Methods in categories or super classes |
| are not counted. |
| |
| """ |
| return _lldb.SBType_GetNumberOfMemberFunctions(self) |
| |
| def GetMemberFunctionAtIndex(self, idx: "uint32_t") -> "lldb::SBTypeMemberFunction": |
| r""" |
| GetMemberFunctionAtIndex(SBType self, uint32_t idx) -> SBTypeMemberFunction |
| Returns the member function of this type with the given index. |
| |
| Returns an invalid `SBTypeMemberFunction` if the index is invalid or this |
| type is invalid. |
| |
| Language-specific behaviour: |
| |
| * C: Always returns an invalid `SBTypeMemberFunction`. |
| * C++: Returns the member function or constructor/destructor with the given |
| index. |
| * Objective-C: Returns the method with the given index. |
| |
| See `GetNumberOfMemberFunctions` for what functions can be queried by this |
| function. |
| |
| """ |
| return _lldb.SBType_GetMemberFunctionAtIndex(self, idx) |
| |
| def IsTypeComplete(self) -> "bool": |
| r""" |
| IsTypeComplete(SBType self) -> bool |
| Returns true if the type is completely defined. |
| |
| Language-specific behaviour: |
| |
| * C: Returns false for struct types that were only forward declared in the |
| type's `SBTarget`/`SBModule`. Otherwise returns true. |
| * C++: Returns false for template/non-template struct/class types and |
| scoped enums that were only forward declared inside the type's |
| `SBTarget`/`SBModule`. Otherwise returns true. |
| * Objective-C: Follows the same behavior as C for struct types. Objective-C |
| classes are considered complete unless they were only forward declared via |
| ``@class ClassName`` in the type's `SBTarget`/`SBModule`. Otherwise |
| returns true. |
| |
| """ |
| return _lldb.SBType_IsTypeComplete(self) |
| |
| def GetTypeFlags(self) -> "uint32_t": |
| r""" |
| GetTypeFlags(SBType self) -> uint32_t |
| Returns the `TypeFlags` values for this type. |
| |
| See the respective `TypeFlags` values for what values can be set. Returns an |
| integer in which each `TypeFlags` value is represented by a bit. Specific |
| flags can be checked via Python's bitwise operators. For example, the |
| `eTypeIsInteger` flag can be checked like this: |
| |
| ``(an_sb_type.GetTypeFlags() & lldb.eTypeIsInteger) != 0`` |
| |
| If this type is invalid this returns ``0``. |
| |
| See the different values for `TypeFlags` for the language-specific meanings |
| of each `TypeFlags` value. |
| |
| """ |
| return _lldb.SBType_GetTypeFlags(self) |
| |
| def __eq__(self, rhs: "SBType") -> "bool": |
| r""" |
| __eq__(SBType self, SBType rhs) -> bool |
| Returns the `BasicType` value that is most appropriate to this type. |
| |
| Returns `eBasicTypeInvalid` if no appropriate `BasicType` was found or this |
| type is invalid. See the `BasicType` documentation for the language-specific m |
| aning of each `BasicType` value. |
| |
| **Overload behaviour:** When called with a `BasicType` parameter, the |
| following behaviour applies: |
| |
| Returns the `SBType` that represents the passed `BasicType` value. Returns |
| an invalid `SBType` if no fitting `SBType` could be created. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the respective builtin type. Note that some types |
| (e.g. ``__uint128_t``) might even be successfully created even if they are |
| not available on the target platform. C++ and Objective-C specific types |
| might also be created even if the target program is not written in C++ or |
| Objective-C. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBType") -> "bool": |
| r""" |
| __ne__(SBType self, SBType rhs) -> bool |
| Returns the `BasicType` value that is most appropriate to this type. |
| |
| Returns `eBasicTypeInvalid` if no appropriate `BasicType` was found or this |
| type is invalid. See the `BasicType` documentation for the language-specific m |
| aning of each `BasicType` value. |
| |
| **Overload behaviour:** When called with a `BasicType` parameter, the |
| following behaviour applies: |
| |
| Returns the `SBType` that represents the passed `BasicType` value. Returns |
| an invalid `SBType` if no fitting `SBType` could be created. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the respective builtin type. Note that some types |
| (e.g. ``__uint128_t``) might even be successfully created even if they are |
| not available on the target platform. C++ and Objective-C specific types |
| might also be created even if the target program is not written in C++ or |
| Objective-C. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r""" |
| __str__(SBType self) -> std::string |
| Returns the `BasicType` value that is most appropriate to this type. |
| |
| Returns `eBasicTypeInvalid` if no appropriate `BasicType` was found or this |
| type is invalid. See the `BasicType` documentation for the language-specific m |
| aning of each `BasicType` value. |
| |
| **Overload behaviour:** When called with a `BasicType` parameter, the |
| following behaviour applies: |
| |
| Returns the `SBType` that represents the passed `BasicType` value. Returns |
| an invalid `SBType` if no fitting `SBType` could be created. |
| |
| Language-specific behaviour: |
| |
| * C: Returns the respective builtin type. Note that some types |
| (e.g. ``__uint128_t``) might even be successfully created even if they are |
| not available on the target platform. C++ and Objective-C specific types |
| might also be created even if the target program is not written in C++ or |
| Objective-C. |
| * C++: Same as in C. |
| * Objective-C: Same as in C. |
| |
| """ |
| return _lldb.SBType___str__(self) |
| |
| def template_arg_array(self): |
| num_args = self.num_template_args |
| if num_args: |
| template_args = [] |
| for i in range(num_args): |
| template_args.append(self.GetTemplateArgumentType(i)) |
| return template_args |
| return None |
| |
| module = property(GetModule, None, doc='''A read only property that returns the module in which type is defined.''') |
| name = property(GetName, None, doc='''A read only property that returns the name for this type as a string.''') |
| size = property(GetByteSize, None, doc='''A read only property that returns size in bytes for this type as an integer.''') |
| is_pointer = property(IsPointerType, None, doc='''A read only property that returns a boolean value that indicates if this type is a pointer type.''') |
| is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a reference type.''') |
| is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a function type.''') |
| num_fields = property(GetNumberOfFields, None, doc='''A read only property that returns number of fields in this type as an integer.''') |
| num_bases = property(GetNumberOfDirectBaseClasses, None, doc='''A read only property that returns number of direct base classes in this type as an integer.''') |
| num_vbases = property(GetNumberOfVirtualBaseClasses, None, doc='''A read only property that returns number of virtual base classes in this type as an integer.''') |
| num_template_args = property(GetNumberOfTemplateArguments, None, doc='''A read only property that returns number of template arguments in this type as an integer.''') |
| template_args = property(template_arg_array, None, doc='''A read only property that returns a list() of lldb.SBType objects that represent all template arguments in this type.''') |
| type = property(GetTypeClass, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eTypeClass") that represents a classification for this type.''') |
| is_complete = property(IsTypeComplete, None, doc='''A read only property that returns a boolean value that indicates if this type is a complete type (True) or a forward declaration (False).''') |
| |
| def get_bases_array(self): |
| '''An accessor function that returns a list() that contains all direct base classes in a lldb.SBType object.''' |
| bases = [] |
| for idx in range(self.GetNumberOfDirectBaseClasses()): |
| bases.append(self.GetDirectBaseClassAtIndex(idx)) |
| return bases |
| |
| def get_vbases_array(self): |
| '''An accessor function that returns a list() that contains all fields in a lldb.SBType object.''' |
| vbases = [] |
| for idx in range(self.GetNumberOfVirtualBaseClasses()): |
| vbases.append(self.GetVirtualBaseClassAtIndex(idx)) |
| return vbases |
| |
| def get_fields_array(self): |
| '''An accessor function that returns a list() that contains all fields in a lldb.SBType object.''' |
| fields = [] |
| for idx in range(self.GetNumberOfFields()): |
| fields.append(self.GetFieldAtIndex(idx)) |
| return fields |
| |
| def get_members_array(self): |
| '''An accessor function that returns a list() that contains all members (base classes and fields) in a lldb.SBType object in ascending bit offset order.''' |
| members = [] |
| bases = self.get_bases_array() |
| fields = self.get_fields_array() |
| vbases = self.get_vbases_array() |
| for base in bases: |
| bit_offset = base.bit_offset |
| added = False |
| for idx, member in enumerate(members): |
| if member.bit_offset > bit_offset: |
| members.insert(idx, base) |
| added = True |
| break |
| if not added: |
| members.append(base) |
| for vbase in vbases: |
| bit_offset = vbase.bit_offset |
| added = False |
| for idx, member in enumerate(members): |
| if member.bit_offset > bit_offset: |
| members.insert(idx, vbase) |
| added = True |
| break |
| if not added: |
| members.append(vbase) |
| for field in fields: |
| bit_offset = field.bit_offset |
| added = False |
| for idx, member in enumerate(members): |
| if member.bit_offset > bit_offset: |
| members.insert(idx, field) |
| added = True |
| break |
| if not added: |
| members.append(field) |
| return members |
| |
| def get_enum_members_array(self): |
| '''An accessor function that returns a list() that contains all enum members in an lldb.SBType object.''' |
| enum_members_list = [] |
| sb_enum_members = self.GetEnumMembers() |
| for idx in range(sb_enum_members.GetSize()): |
| enum_members_list.append(sb_enum_members.GetTypeEnumMemberAtIndex(idx)) |
| return enum_members_list |
| |
| bases = property(get_bases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the direct base classes for this type.''') |
| vbases = property(get_vbases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the virtual base classes for this type.''') |
| fields = property(get_fields_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the fields for this type.''') |
| members = property(get_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeMember objects that represent all of the base classes, virtual base classes and fields for this type in ascending bit offset order.''') |
| enum_members = property(get_enum_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeEnumMember objects that represent the enum members for this type.''') |
| |
| |
| # Register SBType in _lldb: |
| _lldb.SBType_swigregister(SBType) |
| |
| class SBTypeList(object): |
| r""" |
| Represents a list of :py:class:`SBType` s. |
| |
| The FindTypes() method of :py:class:`SBTarget`/:py:class:`SBModule` returns a SBTypeList. |
| |
| SBTypeList supports :py:class:`SBType` iteration. For example, |
| |
| .. code-block:: cpp |
| |
| // main.cpp: |
| |
| class Task { |
| public: |
| int id; |
| Task *next; |
| Task(int i, Task *n): |
| id(i), |
| next(n) |
| {} |
| }; |
| |
| .. code-block:: python |
| |
| # find_type.py: |
| |
| # Get the type 'Task'. |
| type_list = target.FindTypes('Task') |
| self.assertTrue(len(type_list) == 1) |
| # To illustrate the SBType iteration. |
| for type in type_list: |
| # do something with type |
| |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self): |
| r"""__init__(SBTypeList self) -> SBTypeList""" |
| _lldb.SBTypeList_swiginit(self, _lldb.new_SBTypeList()) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeList self) -> bool""" |
| return _lldb.SBTypeList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Append(self, type: "SBType") -> "void": |
| r"""Append(SBTypeList self, SBType type)""" |
| return _lldb.SBTypeList_Append(self, type) |
| |
| def GetTypeAtIndex(self, index: "uint32_t") -> "lldb::SBType": |
| r"""GetTypeAtIndex(SBTypeList self, uint32_t index) -> SBType""" |
| return _lldb.SBTypeList_GetTypeAtIndex(self, index) |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBTypeList self) -> uint32_t""" |
| return _lldb.SBTypeList_GetSize(self) |
| __swig_destroy__ = _lldb.delete_SBTypeList |
| |
| def __iter__(self): |
| '''Iterate over all types in a lldb.SBTypeList object.''' |
| return lldb_iter(self, 'GetSize', 'GetTypeAtIndex') |
| |
| def __len__(self): |
| '''Return the number of types in a lldb.SBTypeList object.''' |
| return self.GetSize() |
| |
| |
| # Register SBTypeList in _lldb: |
| _lldb.SBTypeList_swigregister(SBTypeList) |
| |
| class SBTypeCategory(object): |
| r"""Represents a category that can contain formatters for types.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeCategory self) -> SBTypeCategory |
| __init__(SBTypeCategory self, SBTypeCategory rhs) -> SBTypeCategory |
| """ |
| _lldb.SBTypeCategory_swiginit(self, _lldb.new_SBTypeCategory(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeCategory |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeCategory self) -> bool""" |
| return _lldb.SBTypeCategory_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeCategory___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetEnabled(self) -> "bool": |
| r"""GetEnabled(SBTypeCategory self) -> bool""" |
| return _lldb.SBTypeCategory_GetEnabled(self) |
| |
| def SetEnabled(self, arg2: "bool") -> "void": |
| r"""SetEnabled(SBTypeCategory self, bool arg2)""" |
| return _lldb.SBTypeCategory_SetEnabled(self, arg2) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBTypeCategory self) -> char const *""" |
| return _lldb.SBTypeCategory_GetName(self) |
| |
| def GetLanguageAtIndex(self, idx: "uint32_t") -> "lldb::LanguageType": |
| r"""GetLanguageAtIndex(SBTypeCategory self, uint32_t idx) -> lldb::LanguageType""" |
| return _lldb.SBTypeCategory_GetLanguageAtIndex(self, idx) |
| |
| def GetNumLanguages(self) -> "uint32_t": |
| r"""GetNumLanguages(SBTypeCategory self) -> uint32_t""" |
| return _lldb.SBTypeCategory_GetNumLanguages(self) |
| |
| def AddLanguage(self, language: "lldb::LanguageType") -> "void": |
| r"""AddLanguage(SBTypeCategory self, lldb::LanguageType language)""" |
| return _lldb.SBTypeCategory_AddLanguage(self, language) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeCategory self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeCategory_GetDescription(self, description, description_level) |
| |
| def GetNumFormats(self) -> "uint32_t": |
| r"""GetNumFormats(SBTypeCategory self) -> uint32_t""" |
| return _lldb.SBTypeCategory_GetNumFormats(self) |
| |
| def GetNumSummaries(self) -> "uint32_t": |
| r"""GetNumSummaries(SBTypeCategory self) -> uint32_t""" |
| return _lldb.SBTypeCategory_GetNumSummaries(self) |
| |
| def GetNumFilters(self) -> "uint32_t": |
| r"""GetNumFilters(SBTypeCategory self) -> uint32_t""" |
| return _lldb.SBTypeCategory_GetNumFilters(self) |
| |
| def GetNumSynthetics(self) -> "uint32_t": |
| r"""GetNumSynthetics(SBTypeCategory self) -> uint32_t""" |
| return _lldb.SBTypeCategory_GetNumSynthetics(self) |
| |
| def GetTypeNameSpecifierForFilterAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeNameSpecifier": |
| r"""GetTypeNameSpecifierForFilterAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeNameSpecifier""" |
| return _lldb.SBTypeCategory_GetTypeNameSpecifierForFilterAtIndex(self, arg2) |
| |
| def GetTypeNameSpecifierForFormatAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeNameSpecifier": |
| r"""GetTypeNameSpecifierForFormatAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeNameSpecifier""" |
| return _lldb.SBTypeCategory_GetTypeNameSpecifierForFormatAtIndex(self, arg2) |
| |
| def GetTypeNameSpecifierForSummaryAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeNameSpecifier": |
| r"""GetTypeNameSpecifierForSummaryAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeNameSpecifier""" |
| return _lldb.SBTypeCategory_GetTypeNameSpecifierForSummaryAtIndex(self, arg2) |
| |
| def GetTypeNameSpecifierForSyntheticAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeNameSpecifier": |
| r"""GetTypeNameSpecifierForSyntheticAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeNameSpecifier""" |
| return _lldb.SBTypeCategory_GetTypeNameSpecifierForSyntheticAtIndex(self, arg2) |
| |
| def GetFilterForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeFilter": |
| r"""GetFilterForType(SBTypeCategory self, SBTypeNameSpecifier arg2) -> SBTypeFilter""" |
| return _lldb.SBTypeCategory_GetFilterForType(self, arg2) |
| |
| def GetFormatForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeFormat": |
| r"""GetFormatForType(SBTypeCategory self, SBTypeNameSpecifier arg2) -> SBTypeFormat""" |
| return _lldb.SBTypeCategory_GetFormatForType(self, arg2) |
| |
| def GetSummaryForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeSummary": |
| r"""GetSummaryForType(SBTypeCategory self, SBTypeNameSpecifier arg2) -> SBTypeSummary""" |
| return _lldb.SBTypeCategory_GetSummaryForType(self, arg2) |
| |
| def GetSyntheticForType(self, arg2: "SBTypeNameSpecifier") -> "lldb::SBTypeSynthetic": |
| r"""GetSyntheticForType(SBTypeCategory self, SBTypeNameSpecifier arg2) -> SBTypeSynthetic""" |
| return _lldb.SBTypeCategory_GetSyntheticForType(self, arg2) |
| |
| def GetFilterAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeFilter": |
| r"""GetFilterAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeFilter""" |
| return _lldb.SBTypeCategory_GetFilterAtIndex(self, arg2) |
| |
| def GetFormatAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeFormat": |
| r"""GetFormatAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeFormat""" |
| return _lldb.SBTypeCategory_GetFormatAtIndex(self, arg2) |
| |
| def GetSummaryAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeSummary": |
| r"""GetSummaryAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeSummary""" |
| return _lldb.SBTypeCategory_GetSummaryAtIndex(self, arg2) |
| |
| def GetSyntheticAtIndex(self, arg2: "uint32_t") -> "lldb::SBTypeSynthetic": |
| r"""GetSyntheticAtIndex(SBTypeCategory self, uint32_t arg2) -> SBTypeSynthetic""" |
| return _lldb.SBTypeCategory_GetSyntheticAtIndex(self, arg2) |
| |
| def AddTypeFormat(self, arg2: "SBTypeNameSpecifier", arg3: "SBTypeFormat") -> "bool": |
| r"""AddTypeFormat(SBTypeCategory self, SBTypeNameSpecifier arg2, SBTypeFormat arg3) -> bool""" |
| return _lldb.SBTypeCategory_AddTypeFormat(self, arg2, arg3) |
| |
| def DeleteTypeFormat(self, arg2: "SBTypeNameSpecifier") -> "bool": |
| r"""DeleteTypeFormat(SBTypeCategory self, SBTypeNameSpecifier arg2) -> bool""" |
| return _lldb.SBTypeCategory_DeleteTypeFormat(self, arg2) |
| |
| def AddTypeSummary(self, arg2: "SBTypeNameSpecifier", arg3: "SBTypeSummary") -> "bool": |
| r"""AddTypeSummary(SBTypeCategory self, SBTypeNameSpecifier arg2, SBTypeSummary arg3) -> bool""" |
| return _lldb.SBTypeCategory_AddTypeSummary(self, arg2, arg3) |
| |
| def DeleteTypeSummary(self, arg2: "SBTypeNameSpecifier") -> "bool": |
| r"""DeleteTypeSummary(SBTypeCategory self, SBTypeNameSpecifier arg2) -> bool""" |
| return _lldb.SBTypeCategory_DeleteTypeSummary(self, arg2) |
| |
| def AddTypeFilter(self, arg2: "SBTypeNameSpecifier", arg3: "SBTypeFilter") -> "bool": |
| r"""AddTypeFilter(SBTypeCategory self, SBTypeNameSpecifier arg2, SBTypeFilter arg3) -> bool""" |
| return _lldb.SBTypeCategory_AddTypeFilter(self, arg2, arg3) |
| |
| def DeleteTypeFilter(self, arg2: "SBTypeNameSpecifier") -> "bool": |
| r"""DeleteTypeFilter(SBTypeCategory self, SBTypeNameSpecifier arg2) -> bool""" |
| return _lldb.SBTypeCategory_DeleteTypeFilter(self, arg2) |
| |
| def AddTypeSynthetic(self, arg2: "SBTypeNameSpecifier", arg3: "SBTypeSynthetic") -> "bool": |
| r"""AddTypeSynthetic(SBTypeCategory self, SBTypeNameSpecifier arg2, SBTypeSynthetic arg3) -> bool""" |
| return _lldb.SBTypeCategory_AddTypeSynthetic(self, arg2, arg3) |
| |
| def DeleteTypeSynthetic(self, arg2: "SBTypeNameSpecifier") -> "bool": |
| r"""DeleteTypeSynthetic(SBTypeCategory self, SBTypeNameSpecifier arg2) -> bool""" |
| return _lldb.SBTypeCategory_DeleteTypeSynthetic(self, arg2) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeCategory self) -> std::string""" |
| return _lldb.SBTypeCategory___str__(self) |
| |
| |
| class formatters_access_class(object): |
| '''A helper object that will lazily hand out formatters for a specific category.''' |
| def __init__(self, sbcategory, get_count_function, get_at_index_function, get_by_name_function): |
| self.sbcategory = sbcategory |
| self.get_count_function = get_count_function |
| self.get_at_index_function = get_at_index_function |
| self.get_by_name_function = get_by_name_function |
| self.regex_type = type(re.compile('.')) |
| |
| |
| def __len__(self): |
| if self.sbcategory and self.get_count_function: |
| return int(self.get_count_function(self.sbcategory)) |
| return 0 |
| |
| def __getitem__(self, key): |
| num_items = len(self) |
| if type(key) is int: |
| if key < num_items: |
| return self.get_at_index_function(self.sbcategory,key) |
| elif type(key) is str: |
| return self.get_by_name_function(self.sbcategory,SBTypeNameSpecifier(key)) |
| elif isinstance(key,self.regex_type): |
| return self.get_by_name_function(self.sbcategory,SBTypeNameSpecifier(key.pattern,True)) |
| else: |
| print("error: unsupported item type: %s" % type(key)) |
| return None |
| |
| def get_formats_access_object(self): |
| '''An accessor function that returns an accessor object which allows lazy format access from a lldb.SBTypeCategory object.''' |
| return self.formatters_access_class (self,self.__class__.GetNumFormats,self.__class__.GetFormatAtIndex,self.__class__.GetFormatForType) |
| |
| def get_formats_array(self): |
| '''An accessor function that returns a list() that contains all formats in a lldb.SBCategory object.''' |
| formats = [] |
| for idx in range(self.GetNumFormats()): |
| formats.append(self.GetFormatAtIndex(idx)) |
| return formats |
| |
| def get_summaries_access_object(self): |
| '''An accessor function that returns an accessor object which allows lazy summary access from a lldb.SBTypeCategory object.''' |
| return self.formatters_access_class (self,self.__class__.GetNumSummaries,self.__class__.GetSummaryAtIndex,self.__class__.GetSummaryForType) |
| |
| def get_summaries_array(self): |
| '''An accessor function that returns a list() that contains all summaries in a lldb.SBCategory object.''' |
| summaries = [] |
| for idx in range(self.GetNumSummaries()): |
| summaries.append(self.GetSummaryAtIndex(idx)) |
| return summaries |
| |
| def get_synthetics_access_object(self): |
| '''An accessor function that returns an accessor object which allows lazy synthetic children provider access from a lldb.SBTypeCategory object.''' |
| return self.formatters_access_class (self,self.__class__.GetNumSynthetics,self.__class__.GetSyntheticAtIndex,self.__class__.GetSyntheticForType) |
| |
| def get_synthetics_array(self): |
| '''An accessor function that returns a list() that contains all synthetic children providers in a lldb.SBCategory object.''' |
| synthetics = [] |
| for idx in range(self.GetNumSynthetics()): |
| synthetics.append(self.GetSyntheticAtIndex(idx)) |
| return synthetics |
| |
| def get_filters_access_object(self): |
| '''An accessor function that returns an accessor object which allows lazy filter access from a lldb.SBTypeCategory object.''' |
| return self.formatters_access_class (self,self.__class__.GetNumFilters,self.__class__.GetFilterAtIndex,self.__class__.GetFilterForType) |
| |
| def get_filters_array(self): |
| '''An accessor function that returns a list() that contains all filters in a lldb.SBCategory object.''' |
| filters = [] |
| for idx in range(self.GetNumFilters()): |
| filters.append(self.GetFilterAtIndex(idx)) |
| return filters |
| |
| formats = property(get_formats_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFormat objects contained in this category''') |
| format = property(get_formats_access_object, None, doc=r'''A read only property that returns an object that you can use to look for formats by index or type name.''') |
| summaries = property(get_summaries_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSummary objects contained in this category''') |
| summary = property(get_summaries_access_object, None, doc=r'''A read only property that returns an object that you can use to look for summaries by index or type name or regular expression.''') |
| filters = property(get_filters_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFilter objects contained in this category''') |
| filter = property(get_filters_access_object, None, doc=r'''A read only property that returns an object that you can use to look for filters by index or type name or regular expression.''') |
| synthetics = property(get_synthetics_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSynthetic objects contained in this category''') |
| synthetic = property(get_synthetics_access_object, None, doc=r'''A read only property that returns an object that you can use to look for synthetic children provider by index or type name or regular expression.''') |
| num_formats = property(GetNumFormats, None) |
| num_summaries = property(GetNumSummaries, None) |
| num_filters = property(GetNumFilters, None) |
| num_synthetics = property(GetNumSynthetics, None) |
| name = property(GetName, None) |
| enabled = property(GetEnabled, SetEnabled) |
| |
| |
| # Register SBTypeCategory in _lldb: |
| _lldb.SBTypeCategory_swigregister(SBTypeCategory) |
| |
| class SBTypeEnumMember(object): |
| r"""Represents a member of an enum in lldb.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeEnumMember self) -> SBTypeEnumMember |
| __init__(SBTypeEnumMember self, SBTypeEnumMember rhs) -> SBTypeEnumMember |
| """ |
| _lldb.SBTypeEnumMember_swiginit(self, _lldb.new_SBTypeEnumMember(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeEnumMember |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeEnumMember self) -> bool""" |
| return _lldb.SBTypeEnumMember_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeEnumMember___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetValueAsSigned(self) -> "int64_t": |
| r"""GetValueAsSigned(SBTypeEnumMember self) -> int64_t""" |
| return _lldb.SBTypeEnumMember_GetValueAsSigned(self) |
| |
| def GetValueAsUnsigned(self) -> "uint64_t": |
| r"""GetValueAsUnsigned(SBTypeEnumMember self) -> uint64_t""" |
| return _lldb.SBTypeEnumMember_GetValueAsUnsigned(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBTypeEnumMember self) -> char const *""" |
| return _lldb.SBTypeEnumMember_GetName(self) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBTypeEnumMember self) -> SBType""" |
| return _lldb.SBTypeEnumMember_GetType(self) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeEnumMember self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeEnumMember_GetDescription(self, description, description_level) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeEnumMember self) -> std::string""" |
| return _lldb.SBTypeEnumMember___str__(self) |
| |
| name = property(GetName, None, doc='''A read only property that returns the name for this enum member as a string.''') |
| type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this enum member.''') |
| signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this enum member as a signed integer.''') |
| unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this enum member as a unsigned integer.''') |
| |
| |
| # Register SBTypeEnumMember in _lldb: |
| _lldb.SBTypeEnumMember_swigregister(SBTypeEnumMember) |
| |
| class SBTypeEnumMemberList(object): |
| r""" |
| Represents a list of SBTypeEnumMembers. |
| |
| SBTypeEnumMemberList supports SBTypeEnumMember iteration. |
| It also supports [] access either by index, or by enum |
| element name by doing: :: |
| |
| myType = target.FindFirstType('MyEnumWithElementA') |
| members = myType.GetEnumMembers() |
| first_elem = members[0] |
| elem_A = members['A'] |
| |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeEnumMemberList self) -> SBTypeEnumMemberList |
| __init__(SBTypeEnumMemberList self, SBTypeEnumMemberList rhs) -> SBTypeEnumMemberList |
| """ |
| _lldb.SBTypeEnumMemberList_swiginit(self, _lldb.new_SBTypeEnumMemberList(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeEnumMemberList |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeEnumMemberList self) -> bool""" |
| return _lldb.SBTypeEnumMemberList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeEnumMemberList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Append(self, entry: "SBTypeEnumMember") -> "void": |
| r"""Append(SBTypeEnumMemberList self, SBTypeEnumMember entry)""" |
| return _lldb.SBTypeEnumMemberList_Append(self, entry) |
| |
| def GetTypeEnumMemberAtIndex(self, index: "uint32_t") -> "lldb::SBTypeEnumMember": |
| r"""GetTypeEnumMemberAtIndex(SBTypeEnumMemberList self, uint32_t index) -> SBTypeEnumMember""" |
| return _lldb.SBTypeEnumMemberList_GetTypeEnumMemberAtIndex(self, index) |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBTypeEnumMemberList self) -> uint32_t""" |
| return _lldb.SBTypeEnumMemberList_GetSize(self) |
| |
| def __iter__(self): |
| '''Iterate over all members in a lldb.SBTypeEnumMemberList object.''' |
| return lldb_iter(self, 'GetSize', 'GetTypeEnumMemberAtIndex') |
| |
| def __len__(self): |
| '''Return the number of members in a lldb.SBTypeEnumMemberList object.''' |
| return self.GetSize() |
| |
| def __getitem__(self, key): |
| num_elements = self.GetSize() |
| if type(key) is int: |
| if key < num_elements: |
| return self.GetTypeEnumMemberAtIndex(key) |
| elif type(key) is str: |
| for idx in range(num_elements): |
| item = self.GetTypeEnumMemberAtIndex(idx) |
| if item.name == key: |
| return item |
| return None |
| |
| |
| # Register SBTypeEnumMemberList in _lldb: |
| _lldb.SBTypeEnumMemberList_swigregister(SBTypeEnumMemberList) |
| |
| class SBTypeFilter(object): |
| r"""Represents a filter that can be associated to one or more types.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeFilter self) -> SBTypeFilter |
| __init__(SBTypeFilter self, uint32_t options) -> SBTypeFilter |
| __init__(SBTypeFilter self, SBTypeFilter rhs) -> SBTypeFilter |
| """ |
| _lldb.SBTypeFilter_swiginit(self, _lldb.new_SBTypeFilter(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeFilter |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeFilter self) -> bool""" |
| return _lldb.SBTypeFilter_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeFilter___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsEqualTo(self, rhs: "SBTypeFilter") -> "bool": |
| r"""IsEqualTo(SBTypeFilter self, SBTypeFilter rhs) -> bool""" |
| return _lldb.SBTypeFilter_IsEqualTo(self, rhs) |
| |
| def GetNumberOfExpressionPaths(self) -> "uint32_t": |
| r"""GetNumberOfExpressionPaths(SBTypeFilter self) -> uint32_t""" |
| return _lldb.SBTypeFilter_GetNumberOfExpressionPaths(self) |
| |
| def GetExpressionPathAtIndex(self, i: "uint32_t") -> "char const *": |
| r"""GetExpressionPathAtIndex(SBTypeFilter self, uint32_t i) -> char const *""" |
| return _lldb.SBTypeFilter_GetExpressionPathAtIndex(self, i) |
| |
| def ReplaceExpressionPathAtIndex(self, i: "uint32_t", item: "char const *") -> "bool": |
| r"""ReplaceExpressionPathAtIndex(SBTypeFilter self, uint32_t i, char const * item) -> bool""" |
| return _lldb.SBTypeFilter_ReplaceExpressionPathAtIndex(self, i, item) |
| |
| def AppendExpressionPath(self, item: "char const *") -> "void": |
| r"""AppendExpressionPath(SBTypeFilter self, char const * item)""" |
| return _lldb.SBTypeFilter_AppendExpressionPath(self, item) |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBTypeFilter self)""" |
| return _lldb.SBTypeFilter_Clear(self) |
| |
| def GetOptions(self) -> "uint32_t": |
| r"""GetOptions(SBTypeFilter self) -> uint32_t""" |
| return _lldb.SBTypeFilter_GetOptions(self) |
| |
| def SetOptions(self, arg2: "uint32_t") -> "void": |
| r"""SetOptions(SBTypeFilter self, uint32_t arg2)""" |
| return _lldb.SBTypeFilter_SetOptions(self, arg2) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeFilter self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeFilter_GetDescription(self, description, description_level) |
| |
| def __eq__(self, rhs: "SBTypeFilter") -> "bool": |
| r"""__eq__(SBTypeFilter self, SBTypeFilter rhs) -> bool""" |
| return _lldb.SBTypeFilter___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTypeFilter") -> "bool": |
| r"""__ne__(SBTypeFilter self, SBTypeFilter rhs) -> bool""" |
| return _lldb.SBTypeFilter___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeFilter self) -> std::string""" |
| return _lldb.SBTypeFilter___str__(self) |
| |
| options = property(GetOptions, SetOptions) |
| count = property(GetNumberOfExpressionPaths) |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBTypeFilter in _lldb: |
| _lldb.SBTypeFilter_swigregister(SBTypeFilter) |
| |
| class SBTypeFormat(object): |
| r"""Represents a format that can be associated to one or more types.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeFormat self) -> SBTypeFormat |
| __init__(SBTypeFormat self, lldb::Format format, uint32_t options=0) -> SBTypeFormat |
| __init__(SBTypeFormat self, char const * type, uint32_t options=0) -> SBTypeFormat |
| __init__(SBTypeFormat self, SBTypeFormat rhs) -> SBTypeFormat |
| """ |
| _lldb.SBTypeFormat_swiginit(self, _lldb.new_SBTypeFormat(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeFormat |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeFormat self) -> bool""" |
| return _lldb.SBTypeFormat_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeFormat___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsEqualTo(self, rhs: "SBTypeFormat") -> "bool": |
| r"""IsEqualTo(SBTypeFormat self, SBTypeFormat rhs) -> bool""" |
| return _lldb.SBTypeFormat_IsEqualTo(self, rhs) |
| |
| def GetFormat(self) -> "lldb::Format": |
| r"""GetFormat(SBTypeFormat self) -> lldb::Format""" |
| return _lldb.SBTypeFormat_GetFormat(self) |
| |
| def GetTypeName(self) -> "char const *": |
| r"""GetTypeName(SBTypeFormat self) -> char const *""" |
| return _lldb.SBTypeFormat_GetTypeName(self) |
| |
| def GetOptions(self) -> "uint32_t": |
| r"""GetOptions(SBTypeFormat self) -> uint32_t""" |
| return _lldb.SBTypeFormat_GetOptions(self) |
| |
| def SetFormat(self, arg2: "lldb::Format") -> "void": |
| r"""SetFormat(SBTypeFormat self, lldb::Format arg2)""" |
| return _lldb.SBTypeFormat_SetFormat(self, arg2) |
| |
| def SetTypeName(self, arg2: "char const *") -> "void": |
| r"""SetTypeName(SBTypeFormat self, char const * arg2)""" |
| return _lldb.SBTypeFormat_SetTypeName(self, arg2) |
| |
| def SetOptions(self, arg2: "uint32_t") -> "void": |
| r"""SetOptions(SBTypeFormat self, uint32_t arg2)""" |
| return _lldb.SBTypeFormat_SetOptions(self, arg2) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeFormat self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeFormat_GetDescription(self, description, description_level) |
| |
| def __eq__(self, rhs: "SBTypeFormat") -> "bool": |
| r"""__eq__(SBTypeFormat self, SBTypeFormat rhs) -> bool""" |
| return _lldb.SBTypeFormat___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTypeFormat") -> "bool": |
| r"""__ne__(SBTypeFormat self, SBTypeFormat rhs) -> bool""" |
| return _lldb.SBTypeFormat___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeFormat self) -> std::string""" |
| return _lldb.SBTypeFormat___str__(self) |
| |
| format = property(GetFormat, SetFormat) |
| options = property(GetOptions, SetOptions) |
| |
| |
| # Register SBTypeFormat in _lldb: |
| _lldb.SBTypeFormat_swigregister(SBTypeFormat) |
| |
| class SBTypeNameSpecifier(object): |
| r"""Represents a general way to provide a type name to LLDB APIs.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeNameSpecifier self) -> SBTypeNameSpecifier |
| __init__(SBTypeNameSpecifier self, char const * name, bool is_regex=False) -> SBTypeNameSpecifier |
| __init__(SBTypeNameSpecifier self, SBType type) -> SBTypeNameSpecifier |
| __init__(SBTypeNameSpecifier self, SBTypeNameSpecifier rhs) -> SBTypeNameSpecifier |
| """ |
| _lldb.SBTypeNameSpecifier_swiginit(self, _lldb.new_SBTypeNameSpecifier(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeNameSpecifier |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeNameSpecifier self) -> bool""" |
| return _lldb.SBTypeNameSpecifier_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeNameSpecifier___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsEqualTo(self, rhs: "SBTypeNameSpecifier") -> "bool": |
| r"""IsEqualTo(SBTypeNameSpecifier self, SBTypeNameSpecifier rhs) -> bool""" |
| return _lldb.SBTypeNameSpecifier_IsEqualTo(self, rhs) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBTypeNameSpecifier self) -> char const *""" |
| return _lldb.SBTypeNameSpecifier_GetName(self) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBTypeNameSpecifier self) -> SBType""" |
| return _lldb.SBTypeNameSpecifier_GetType(self) |
| |
| def IsRegex(self) -> "bool": |
| r"""IsRegex(SBTypeNameSpecifier self) -> bool""" |
| return _lldb.SBTypeNameSpecifier_IsRegex(self) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeNameSpecifier self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeNameSpecifier_GetDescription(self, description, description_level) |
| |
| def __eq__(self, rhs: "SBTypeNameSpecifier") -> "bool": |
| r"""__eq__(SBTypeNameSpecifier self, SBTypeNameSpecifier rhs) -> bool""" |
| return _lldb.SBTypeNameSpecifier___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTypeNameSpecifier") -> "bool": |
| r"""__ne__(SBTypeNameSpecifier self, SBTypeNameSpecifier rhs) -> bool""" |
| return _lldb.SBTypeNameSpecifier___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeNameSpecifier self) -> std::string""" |
| return _lldb.SBTypeNameSpecifier___str__(self) |
| |
| name = property(GetName) |
| is_regex = property(IsRegex) |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBTypeNameSpecifier in _lldb: |
| _lldb.SBTypeNameSpecifier_swigregister(SBTypeNameSpecifier) |
| |
| class SBTypeSummaryOptions(object): |
| r"""Proxy of C++ lldb::SBTypeSummaryOptions class.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeSummaryOptions self) -> SBTypeSummaryOptions |
| __init__(SBTypeSummaryOptions self, SBTypeSummaryOptions rhs) -> SBTypeSummaryOptions |
| """ |
| _lldb.SBTypeSummaryOptions_swiginit(self, _lldb.new_SBTypeSummaryOptions(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeSummaryOptions |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeSummaryOptions self) -> bool""" |
| return _lldb.SBTypeSummaryOptions_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeSummaryOptions___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetLanguage(self) -> "lldb::LanguageType": |
| r"""GetLanguage(SBTypeSummaryOptions self) -> lldb::LanguageType""" |
| return _lldb.SBTypeSummaryOptions_GetLanguage(self) |
| |
| def GetCapping(self) -> "lldb::TypeSummaryCapping": |
| r"""GetCapping(SBTypeSummaryOptions self) -> lldb::TypeSummaryCapping""" |
| return _lldb.SBTypeSummaryOptions_GetCapping(self) |
| |
| def SetLanguage(self, arg2: "lldb::LanguageType") -> "void": |
| r"""SetLanguage(SBTypeSummaryOptions self, lldb::LanguageType arg2)""" |
| return _lldb.SBTypeSummaryOptions_SetLanguage(self, arg2) |
| |
| def SetCapping(self, arg2: "lldb::TypeSummaryCapping") -> "void": |
| r"""SetCapping(SBTypeSummaryOptions self, lldb::TypeSummaryCapping arg2)""" |
| return _lldb.SBTypeSummaryOptions_SetCapping(self, arg2) |
| |
| # Register SBTypeSummaryOptions in _lldb: |
| _lldb.SBTypeSummaryOptions_swigregister(SBTypeSummaryOptions) |
| |
| class SBTypeSummary(object): |
| r"""Represents a summary that can be associated to one or more types.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def CreateWithSummaryString(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""CreateWithSummaryString(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithSummaryString(data, options) |
| |
| @staticmethod |
| def CreateWithFunctionName(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""CreateWithFunctionName(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithFunctionName(data, options) |
| |
| @staticmethod |
| def CreateWithScriptCode(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""CreateWithScriptCode(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithScriptCode(data, options) |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeSummary self) -> SBTypeSummary |
| __init__(SBTypeSummary self, SBTypeSummary rhs) -> SBTypeSummary |
| """ |
| _lldb.SBTypeSummary_swiginit(self, _lldb.new_SBTypeSummary(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeSummary |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeSummary self) -> bool""" |
| return _lldb.SBTypeSummary_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeSummary___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsEqualTo(self, rhs: "SBTypeSummary") -> "bool": |
| r"""IsEqualTo(SBTypeSummary self, SBTypeSummary rhs) -> bool""" |
| return _lldb.SBTypeSummary_IsEqualTo(self, rhs) |
| |
| def IsFunctionCode(self) -> "bool": |
| r"""IsFunctionCode(SBTypeSummary self) -> bool""" |
| return _lldb.SBTypeSummary_IsFunctionCode(self) |
| |
| def IsFunctionName(self) -> "bool": |
| r"""IsFunctionName(SBTypeSummary self) -> bool""" |
| return _lldb.SBTypeSummary_IsFunctionName(self) |
| |
| def IsSummaryString(self) -> "bool": |
| r"""IsSummaryString(SBTypeSummary self) -> bool""" |
| return _lldb.SBTypeSummary_IsSummaryString(self) |
| |
| def GetData(self) -> "char const *": |
| r"""GetData(SBTypeSummary self) -> char const *""" |
| return _lldb.SBTypeSummary_GetData(self) |
| |
| def SetSummaryString(self, data: "char const *") -> "void": |
| r"""SetSummaryString(SBTypeSummary self, char const * data)""" |
| return _lldb.SBTypeSummary_SetSummaryString(self, data) |
| |
| def SetFunctionName(self, data: "char const *") -> "void": |
| r"""SetFunctionName(SBTypeSummary self, char const * data)""" |
| return _lldb.SBTypeSummary_SetFunctionName(self, data) |
| |
| def SetFunctionCode(self, data: "char const *") -> "void": |
| r"""SetFunctionCode(SBTypeSummary self, char const * data)""" |
| return _lldb.SBTypeSummary_SetFunctionCode(self, data) |
| |
| def GetOptions(self) -> "uint32_t": |
| r"""GetOptions(SBTypeSummary self) -> uint32_t""" |
| return _lldb.SBTypeSummary_GetOptions(self) |
| |
| def SetOptions(self, arg2: "uint32_t") -> "void": |
| r"""SetOptions(SBTypeSummary self, uint32_t arg2)""" |
| return _lldb.SBTypeSummary_SetOptions(self, arg2) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeSummary self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeSummary_GetDescription(self, description, description_level) |
| |
| def __eq__(self, rhs: "SBTypeSummary") -> "bool": |
| r"""__eq__(SBTypeSummary self, SBTypeSummary rhs) -> bool""" |
| return _lldb.SBTypeSummary___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTypeSummary") -> "bool": |
| r"""__ne__(SBTypeSummary self, SBTypeSummary rhs) -> bool""" |
| return _lldb.SBTypeSummary___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeSummary self) -> std::string""" |
| return _lldb.SBTypeSummary___str__(self) |
| |
| options = property(GetOptions, SetOptions) |
| is_summary_string = property(IsSummaryString) |
| is_function_name = property(IsFunctionName) |
| is_function_name = property(IsFunctionCode) |
| summary_data = property(GetData) |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBTypeSummary in _lldb: |
| _lldb.SBTypeSummary_swigregister(SBTypeSummary) |
| |
| def SBTypeSummary_CreateWithSummaryString(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""SBTypeSummary_CreateWithSummaryString(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithSummaryString(data, options) |
| |
| def SBTypeSummary_CreateWithFunctionName(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""SBTypeSummary_CreateWithFunctionName(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithFunctionName(data, options) |
| |
| def SBTypeSummary_CreateWithScriptCode(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSummary": |
| r"""SBTypeSummary_CreateWithScriptCode(char const * data, uint32_t options=0) -> SBTypeSummary""" |
| return _lldb.SBTypeSummary_CreateWithScriptCode(data, options) |
| |
| class SBTypeSynthetic(object): |
| r"""Represents a summary that can be associated to one or more types.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| @staticmethod |
| def CreateWithClassName(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSynthetic": |
| r"""CreateWithClassName(char const * data, uint32_t options=0) -> SBTypeSynthetic""" |
| return _lldb.SBTypeSynthetic_CreateWithClassName(data, options) |
| |
| @staticmethod |
| def CreateWithScriptCode(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSynthetic": |
| r"""CreateWithScriptCode(char const * data, uint32_t options=0) -> SBTypeSynthetic""" |
| return _lldb.SBTypeSynthetic_CreateWithScriptCode(data, options) |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBTypeSynthetic self) -> SBTypeSynthetic |
| __init__(SBTypeSynthetic self, SBTypeSynthetic rhs) -> SBTypeSynthetic |
| """ |
| _lldb.SBTypeSynthetic_swiginit(self, _lldb.new_SBTypeSynthetic(*args)) |
| __swig_destroy__ = _lldb.delete_SBTypeSynthetic |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBTypeSynthetic self) -> bool""" |
| return _lldb.SBTypeSynthetic_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBTypeSynthetic___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def IsEqualTo(self, rhs: "SBTypeSynthetic") -> "bool": |
| r"""IsEqualTo(SBTypeSynthetic self, SBTypeSynthetic rhs) -> bool""" |
| return _lldb.SBTypeSynthetic_IsEqualTo(self, rhs) |
| |
| def IsClassCode(self) -> "bool": |
| r"""IsClassCode(SBTypeSynthetic self) -> bool""" |
| return _lldb.SBTypeSynthetic_IsClassCode(self) |
| |
| def GetData(self) -> "char const *": |
| r"""GetData(SBTypeSynthetic self) -> char const *""" |
| return _lldb.SBTypeSynthetic_GetData(self) |
| |
| def SetClassName(self, data: "char const *") -> "void": |
| r"""SetClassName(SBTypeSynthetic self, char const * data)""" |
| return _lldb.SBTypeSynthetic_SetClassName(self, data) |
| |
| def SetClassCode(self, data: "char const *") -> "void": |
| r"""SetClassCode(SBTypeSynthetic self, char const * data)""" |
| return _lldb.SBTypeSynthetic_SetClassCode(self, data) |
| |
| def GetOptions(self) -> "uint32_t": |
| r"""GetOptions(SBTypeSynthetic self) -> uint32_t""" |
| return _lldb.SBTypeSynthetic_GetOptions(self) |
| |
| def SetOptions(self, arg2: "uint32_t") -> "void": |
| r"""SetOptions(SBTypeSynthetic self, uint32_t arg2)""" |
| return _lldb.SBTypeSynthetic_SetOptions(self, arg2) |
| |
| def GetDescription(self, description: "SBStream", description_level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBTypeSynthetic self, SBStream description, lldb::DescriptionLevel description_level) -> bool""" |
| return _lldb.SBTypeSynthetic_GetDescription(self, description, description_level) |
| |
| def __eq__(self, rhs: "SBTypeSynthetic") -> "bool": |
| r"""__eq__(SBTypeSynthetic self, SBTypeSynthetic rhs) -> bool""" |
| return _lldb.SBTypeSynthetic___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBTypeSynthetic") -> "bool": |
| r"""__ne__(SBTypeSynthetic self, SBTypeSynthetic rhs) -> bool""" |
| return _lldb.SBTypeSynthetic___ne__(self, rhs) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBTypeSynthetic self) -> std::string""" |
| return _lldb.SBTypeSynthetic___str__(self) |
| |
| options = property(GetOptions, SetOptions) |
| contains_code = property(IsClassCode, None) |
| synthetic_data = property(GetData, None) |
| |
| |
| def __eq__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return False |
| |
| return getattr(_lldb,self.__class__.__name__+"___eq__")(self, rhs) |
| |
| def __ne__(self, rhs): |
| if not isinstance(rhs, type(self)): |
| return True |
| |
| return getattr(_lldb,self.__class__.__name__+"___ne__")(self, rhs) |
| |
| |
| # Register SBTypeSynthetic in _lldb: |
| _lldb.SBTypeSynthetic_swigregister(SBTypeSynthetic) |
| |
| def SBTypeSynthetic_CreateWithClassName(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSynthetic": |
| r"""SBTypeSynthetic_CreateWithClassName(char const * data, uint32_t options=0) -> SBTypeSynthetic""" |
| return _lldb.SBTypeSynthetic_CreateWithClassName(data, options) |
| |
| def SBTypeSynthetic_CreateWithScriptCode(data: "char const *", options: "uint32_t"=0) -> "lldb::SBTypeSynthetic": |
| r"""SBTypeSynthetic_CreateWithScriptCode(char const * data, uint32_t options=0) -> SBTypeSynthetic""" |
| return _lldb.SBTypeSynthetic_CreateWithScriptCode(data, options) |
| |
| class SBUnixSignals(object): |
| r"""Allows you to manipulate LLDB's signal disposition""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBUnixSignals self) -> SBUnixSignals |
| __init__(SBUnixSignals self, SBUnixSignals rhs) -> SBUnixSignals |
| """ |
| _lldb.SBUnixSignals_swiginit(self, _lldb.new_SBUnixSignals(*args)) |
| __swig_destroy__ = _lldb.delete_SBUnixSignals |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBUnixSignals self)""" |
| return _lldb.SBUnixSignals_Clear(self) |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBUnixSignals self) -> bool""" |
| return _lldb.SBUnixSignals_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBUnixSignals___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetSignalAsCString(self, signo: "int32_t") -> "char const *": |
| r"""GetSignalAsCString(SBUnixSignals self, int32_t signo) -> char const *""" |
| return _lldb.SBUnixSignals_GetSignalAsCString(self, signo) |
| |
| def GetSignalNumberFromName(self, name: "char const *") -> "int32_t": |
| r"""GetSignalNumberFromName(SBUnixSignals self, char const * name) -> int32_t""" |
| return _lldb.SBUnixSignals_GetSignalNumberFromName(self, name) |
| |
| def GetShouldSuppress(self, signo: "int32_t") -> "bool": |
| r"""GetShouldSuppress(SBUnixSignals self, int32_t signo) -> bool""" |
| return _lldb.SBUnixSignals_GetShouldSuppress(self, signo) |
| |
| def SetShouldSuppress(self, signo: "int32_t", value: "bool") -> "bool": |
| r"""SetShouldSuppress(SBUnixSignals self, int32_t signo, bool value) -> bool""" |
| return _lldb.SBUnixSignals_SetShouldSuppress(self, signo, value) |
| |
| def GetShouldStop(self, signo: "int32_t") -> "bool": |
| r"""GetShouldStop(SBUnixSignals self, int32_t signo) -> bool""" |
| return _lldb.SBUnixSignals_GetShouldStop(self, signo) |
| |
| def SetShouldStop(self, signo: "int32_t", value: "bool") -> "bool": |
| r"""SetShouldStop(SBUnixSignals self, int32_t signo, bool value) -> bool""" |
| return _lldb.SBUnixSignals_SetShouldStop(self, signo, value) |
| |
| def GetShouldNotify(self, signo: "int32_t") -> "bool": |
| r"""GetShouldNotify(SBUnixSignals self, int32_t signo) -> bool""" |
| return _lldb.SBUnixSignals_GetShouldNotify(self, signo) |
| |
| def SetShouldNotify(self, signo: "int32_t", value: "bool") -> "bool": |
| r"""SetShouldNotify(SBUnixSignals self, int32_t signo, bool value) -> bool""" |
| return _lldb.SBUnixSignals_SetShouldNotify(self, signo, value) |
| |
| def GetNumSignals(self) -> "int32_t": |
| r"""GetNumSignals(SBUnixSignals self) -> int32_t""" |
| return _lldb.SBUnixSignals_GetNumSignals(self) |
| |
| def GetSignalAtIndex(self, index: "int32_t") -> "int32_t": |
| r"""GetSignalAtIndex(SBUnixSignals self, int32_t index) -> int32_t""" |
| return _lldb.SBUnixSignals_GetSignalAtIndex(self, index) |
| |
| def get_unix_signals_list(self): |
| signals = [] |
| for idx in range(0, self.GetNumSignals()): |
| signals.append(self.GetSignalAtIndex(sig)) |
| return signals |
| |
| threads = property(get_unix_signals_list, None, doc='''A read only property that returns a list() of valid signal numbers for this platform.''') |
| |
| |
| # Register SBUnixSignals in _lldb: |
| _lldb.SBUnixSignals_swigregister(SBUnixSignals) |
| |
| class SBValue(object): |
| r""" |
| Represents the value of a variable, a register, or an expression. |
| |
| SBValue supports iteration through its child, which in turn is represented |
| as an SBValue. For example, we can get the general purpose registers of a |
| frame as an SBValue, and iterate through all the registers,:: |
| |
| registerSet = frame.registers # Returns an SBValueList. |
| for regs in registerSet: |
| if 'general purpose registers' in regs.name.lower(): |
| GPRs = regs |
| break |
| |
| print('%s (number of children = %d):' % (GPRs.name, GPRs.num_children)) |
| for reg in GPRs: |
| print('Name: ', reg.name, ' Value: ', reg.value) |
| |
| produces the output: :: |
| |
| General Purpose Registers (number of children = 21): |
| Name: rax Value: 0x0000000100000c5c |
| Name: rbx Value: 0x0000000000000000 |
| Name: rcx Value: 0x00007fff5fbffec0 |
| Name: rdx Value: 0x00007fff5fbffeb8 |
| Name: rdi Value: 0x0000000000000001 |
| Name: rsi Value: 0x00007fff5fbffea8 |
| Name: rbp Value: 0x00007fff5fbffe80 |
| Name: rsp Value: 0x00007fff5fbffe60 |
| Name: r8 Value: 0x0000000008668682 |
| Name: r9 Value: 0x0000000000000000 |
| Name: r10 Value: 0x0000000000001200 |
| Name: r11 Value: 0x0000000000000206 |
| Name: r12 Value: 0x0000000000000000 |
| Name: r13 Value: 0x0000000000000000 |
| Name: r14 Value: 0x0000000000000000 |
| Name: r15 Value: 0x0000000000000000 |
| Name: rip Value: 0x0000000100000dae |
| Name: rflags Value: 0x0000000000000206 |
| Name: cs Value: 0x0000000000000027 |
| Name: fs Value: 0x0000000000000010 |
| Name: gs Value: 0x0000000000000048 |
| |
| See also linked_list_iter() for another perspective on how to iterate through an |
| SBValue instance which interprets the value object as representing the head of a |
| linked list. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBValue self) -> SBValue |
| __init__(SBValue self, SBValue rhs) -> SBValue |
| """ |
| _lldb.SBValue_swiginit(self, _lldb.new_SBValue(*args)) |
| __swig_destroy__ = _lldb.delete_SBValue |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBValue self) -> bool""" |
| return _lldb.SBValue_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBValue___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBValue self)""" |
| return _lldb.SBValue_Clear(self) |
| |
| def GetError(self) -> "lldb::SBError": |
| r"""GetError(SBValue self) -> SBError""" |
| return _lldb.SBValue_GetError(self) |
| |
| def GetID(self) -> "lldb::user_id_t": |
| r"""GetID(SBValue self) -> lldb::user_id_t""" |
| return _lldb.SBValue_GetID(self) |
| |
| def GetName(self) -> "char const *": |
| r"""GetName(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetName(self) |
| |
| def GetTypeName(self) -> "char const *": |
| r"""GetTypeName(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetTypeName(self) |
| |
| def GetDisplayTypeName(self) -> "char const *": |
| r"""GetDisplayTypeName(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetDisplayTypeName(self) |
| |
| def GetByteSize(self) -> "size_t": |
| r"""GetByteSize(SBValue self) -> size_t""" |
| return _lldb.SBValue_GetByteSize(self) |
| |
| def IsInScope(self) -> "bool": |
| r"""IsInScope(SBValue self) -> bool""" |
| return _lldb.SBValue_IsInScope(self) |
| |
| def GetFormat(self) -> "lldb::Format": |
| r"""GetFormat(SBValue self) -> lldb::Format""" |
| return _lldb.SBValue_GetFormat(self) |
| |
| def SetFormat(self, format: "lldb::Format") -> "void": |
| r"""SetFormat(SBValue self, lldb::Format format)""" |
| return _lldb.SBValue_SetFormat(self, format) |
| |
| def GetValue(self) -> "char const *": |
| r"""GetValue(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetValue(self) |
| |
| def GetValueAsSigned(self, *args) -> "int64_t": |
| r""" |
| GetValueAsSigned(SBValue self, SBError error, int64_t fail_value=0) -> int64_t |
| GetValueAsSigned(SBValue self, int64_t fail_value=0) -> int64_t |
| """ |
| return _lldb.SBValue_GetValueAsSigned(self, *args) |
| |
| def GetValueAsUnsigned(self, *args) -> "uint64_t": |
| r""" |
| GetValueAsUnsigned(SBValue self, SBError error, uint64_t fail_value=0) -> uint64_t |
| GetValueAsUnsigned(SBValue self, uint64_t fail_value=0) -> uint64_t |
| """ |
| return _lldb.SBValue_GetValueAsUnsigned(self, *args) |
| |
| def GetValueType(self) -> "lldb::ValueType": |
| r"""GetValueType(SBValue self) -> lldb::ValueType""" |
| return _lldb.SBValue_GetValueType(self) |
| |
| def GetValueDidChange(self) -> "bool": |
| r"""GetValueDidChange(SBValue self) -> bool""" |
| return _lldb.SBValue_GetValueDidChange(self) |
| |
| def GetSummary(self, *args) -> "char const *": |
| r""" |
| GetSummary(SBValue self) -> char const |
| GetSummary(SBValue self, SBStream stream, SBTypeSummaryOptions options) -> char const * |
| """ |
| return _lldb.SBValue_GetSummary(self, *args) |
| |
| def GetObjectDescription(self) -> "char const *": |
| r"""GetObjectDescription(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetObjectDescription(self) |
| |
| def GetDynamicValue(self, use_dynamic: "lldb::DynamicValueType") -> "lldb::SBValue": |
| r"""GetDynamicValue(SBValue self, lldb::DynamicValueType use_dynamic) -> SBValue""" |
| return _lldb.SBValue_GetDynamicValue(self, use_dynamic) |
| |
| def GetStaticValue(self) -> "lldb::SBValue": |
| r"""GetStaticValue(SBValue self) -> SBValue""" |
| return _lldb.SBValue_GetStaticValue(self) |
| |
| def GetNonSyntheticValue(self) -> "lldb::SBValue": |
| r"""GetNonSyntheticValue(SBValue self) -> SBValue""" |
| return _lldb.SBValue_GetNonSyntheticValue(self) |
| |
| def GetPreferDynamicValue(self) -> "lldb::DynamicValueType": |
| r"""GetPreferDynamicValue(SBValue self) -> lldb::DynamicValueType""" |
| return _lldb.SBValue_GetPreferDynamicValue(self) |
| |
| def SetPreferDynamicValue(self, use_dynamic: "lldb::DynamicValueType") -> "void": |
| r"""SetPreferDynamicValue(SBValue self, lldb::DynamicValueType use_dynamic)""" |
| return _lldb.SBValue_SetPreferDynamicValue(self, use_dynamic) |
| |
| def GetPreferSyntheticValue(self) -> "bool": |
| r"""GetPreferSyntheticValue(SBValue self) -> bool""" |
| return _lldb.SBValue_GetPreferSyntheticValue(self) |
| |
| def SetPreferSyntheticValue(self, use_synthetic: "bool") -> "void": |
| r"""SetPreferSyntheticValue(SBValue self, bool use_synthetic)""" |
| return _lldb.SBValue_SetPreferSyntheticValue(self, use_synthetic) |
| |
| def IsDynamic(self) -> "bool": |
| r"""IsDynamic(SBValue self) -> bool""" |
| return _lldb.SBValue_IsDynamic(self) |
| |
| def IsSynthetic(self) -> "bool": |
| r"""IsSynthetic(SBValue self) -> bool""" |
| return _lldb.SBValue_IsSynthetic(self) |
| |
| def IsSyntheticChildrenGenerated(self) -> "bool": |
| r"""IsSyntheticChildrenGenerated(SBValue self) -> bool""" |
| return _lldb.SBValue_IsSyntheticChildrenGenerated(self) |
| |
| def SetSyntheticChildrenGenerated(self, arg2: "bool") -> "void": |
| r"""SetSyntheticChildrenGenerated(SBValue self, bool arg2)""" |
| return _lldb.SBValue_SetSyntheticChildrenGenerated(self, arg2) |
| |
| def GetLocation(self) -> "char const *": |
| r"""GetLocation(SBValue self) -> char const *""" |
| return _lldb.SBValue_GetLocation(self) |
| |
| def SetValueFromCString(self, *args) -> "bool": |
| r""" |
| SetValueFromCString(SBValue self, char const * value_str) -> bool |
| SetValueFromCString(SBValue self, char const * value_str, SBError error) -> bool |
| """ |
| return _lldb.SBValue_SetValueFromCString(self, *args) |
| |
| def GetTypeFormat(self) -> "lldb::SBTypeFormat": |
| r"""GetTypeFormat(SBValue self) -> SBTypeFormat""" |
| return _lldb.SBValue_GetTypeFormat(self) |
| |
| def GetTypeSummary(self) -> "lldb::SBTypeSummary": |
| r"""GetTypeSummary(SBValue self) -> SBTypeSummary""" |
| return _lldb.SBValue_GetTypeSummary(self) |
| |
| def GetTypeFilter(self) -> "lldb::SBTypeFilter": |
| r"""GetTypeFilter(SBValue self) -> SBTypeFilter""" |
| return _lldb.SBValue_GetTypeFilter(self) |
| |
| def GetTypeSynthetic(self) -> "lldb::SBTypeSynthetic": |
| r"""GetTypeSynthetic(SBValue self) -> SBTypeSynthetic""" |
| return _lldb.SBValue_GetTypeSynthetic(self) |
| |
| def GetChildAtIndex(self, *args) -> "lldb::SBValue": |
| r""" |
| GetChildAtIndex(SBValue self, uint32_t idx) -> SBValue |
| GetChildAtIndex(SBValue self, uint32_t idx, lldb::DynamicValueType use_dynamic, bool can_create_synthetic) -> SBValue |
| |
| Get a child value by index from a value. |
| |
| Structs, unions, classes, arrays and pointers have child |
| values that can be access by index. |
| |
| Structs and unions access child members using a zero based index |
| for each child member. For |
| |
| Classes reserve the first indexes for base classes that have |
| members (empty base classes are omitted), and all members of the |
| current class will then follow the base classes. |
| |
| Pointers differ depending on what they point to. If the pointer |
| points to a simple type, the child at index zero |
| is the only child value available, unless synthetic_allowed |
| is true, in which case the pointer will be used as an array |
| and can create 'synthetic' child values using positive or |
| negative indexes. If the pointer points to an aggregate type |
| (an array, class, union, struct), then the pointee is |
| transparently skipped and any children are going to be the indexes |
| of the child values within the aggregate type. For example if |
| we have a 'Point' type and we have a SBValue that contains a |
| pointer to a 'Point' type, then the child at index zero will be |
| the 'x' member, and the child at index 1 will be the 'y' member |
| (the child at index zero won't be a 'Point' instance). |
| |
| If you actually need an SBValue that represents the type pointed |
| to by a SBValue for which GetType().IsPointeeType() returns true, |
| regardless of the pointee type, you can do that with the SBValue.Dereference |
| method (or the equivalent deref property). |
| |
| Arrays have a preset number of children that can be accessed by |
| index and will returns invalid child values for indexes that are |
| out of bounds unless the synthetic_allowed is true. In this |
| case the array can create 'synthetic' child values for indexes |
| that aren't in the array bounds using positive or negative |
| indexes. |
| |
| @param[in] idx |
| The index of the child value to get |
| |
| @param[in] use_dynamic |
| An enumeration that specifies whether to get dynamic values, |
| and also if the target can be run to figure out the dynamic |
| type of the child value. |
| |
| @param[in] synthetic_allowed |
| If true, then allow child values to be created by index |
| for pointers and arrays for indexes that normally wouldn't |
| be allowed. |
| |
| @return |
| A new SBValue object that represents the child member value. |
| """ |
| return _lldb.SBValue_GetChildAtIndex(self, *args) |
| |
| def CreateChildAtOffset(self, name: "char const *", offset: "uint32_t", type: "SBType") -> "lldb::SBValue": |
| r"""CreateChildAtOffset(SBValue self, char const * name, uint32_t offset, SBType type) -> SBValue""" |
| return _lldb.SBValue_CreateChildAtOffset(self, name, offset, type) |
| |
| def Cast(self, type: "SBType") -> "lldb::SBValue": |
| r"""Cast(SBValue self, SBType type) -> SBValue""" |
| return _lldb.SBValue_Cast(self, type) |
| |
| def CreateValueFromExpression(self, *args) -> "lldb::SBValue": |
| r""" |
| CreateValueFromExpression(SBValue self, char const * name, char const * expression) -> SBValue |
| CreateValueFromExpression(SBValue self, char const * name, char const * expression, SBExpressionOptions options) -> SBValue |
| """ |
| return _lldb.SBValue_CreateValueFromExpression(self, *args) |
| |
| def CreateValueFromAddress(self, name: "char const *", address: "lldb::addr_t", type: "SBType") -> "lldb::SBValue": |
| r"""CreateValueFromAddress(SBValue self, char const * name, lldb::addr_t address, SBType type) -> SBValue""" |
| return _lldb.SBValue_CreateValueFromAddress(self, name, address, type) |
| |
| def CreateValueFromData(self, name: "char const *", data: "SBData", type: "SBType") -> "lldb::SBValue": |
| r"""CreateValueFromData(SBValue self, char const * name, SBData data, SBType type) -> SBValue""" |
| return _lldb.SBValue_CreateValueFromData(self, name, data, type) |
| |
| def GetType(self) -> "lldb::SBType": |
| r"""GetType(SBValue self) -> SBType""" |
| return _lldb.SBValue_GetType(self) |
| |
| def GetIndexOfChildWithName(self, name: "char const *") -> "uint32_t": |
| r""" |
| GetIndexOfChildWithName(SBValue self, char const * name) -> uint32_t |
| |
| Returns the child member index. |
| |
| Matches children of this object only and will match base classes and |
| member names if this is a clang typed object. |
| |
| @param[in] name |
| The name of the child value to get |
| |
| @return |
| An index to the child member value. |
| """ |
| return _lldb.SBValue_GetIndexOfChildWithName(self, name) |
| |
| def GetChildMemberWithName(self, *args) -> "lldb::SBValue": |
| r""" |
| GetChildMemberWithName(SBValue self, char const * name) -> SBValue |
| GetChildMemberWithName(SBValue self, char const * name, lldb::DynamicValueType use_dynamic) -> SBValue |
| |
| Returns the child member value. |
| |
| Matches child members of this object and child members of any base |
| classes. |
| |
| @param[in] name |
| The name of the child value to get |
| |
| @param[in] use_dynamic |
| An enumeration that specifies whether to get dynamic values, |
| and also if the target can be run to figure out the dynamic |
| type of the child value. |
| |
| @return |
| A new SBValue object that represents the child member value. |
| """ |
| return _lldb.SBValue_GetChildMemberWithName(self, *args) |
| |
| def GetValueForExpressionPath(self, expr_path: "char const *") -> "lldb::SBValue": |
| r""" |
| GetValueForExpressionPath(SBValue self, char const * expr_path) -> SBValue |
| Expands nested expressions like .a->b[0].c[1]->d. |
| """ |
| return _lldb.SBValue_GetValueForExpressionPath(self, expr_path) |
| |
| def GetDeclaration(self) -> "lldb::SBDeclaration": |
| r"""GetDeclaration(SBValue self) -> SBDeclaration""" |
| return _lldb.SBValue_GetDeclaration(self) |
| |
| def MightHaveChildren(self) -> "bool": |
| r"""MightHaveChildren(SBValue self) -> bool""" |
| return _lldb.SBValue_MightHaveChildren(self) |
| |
| def IsRuntimeSupportValue(self) -> "bool": |
| r"""IsRuntimeSupportValue(SBValue self) -> bool""" |
| return _lldb.SBValue_IsRuntimeSupportValue(self) |
| |
| def GetNumChildren(self, *args) -> "uint32_t": |
| r""" |
| GetNumChildren(SBValue self) -> uint32_t |
| GetNumChildren(SBValue self, uint32_t max) -> uint32_t |
| """ |
| return _lldb.SBValue_GetNumChildren(self, *args) |
| |
| def GetOpaqueType(self) -> "void *": |
| r"""GetOpaqueType(SBValue self) -> void *""" |
| return _lldb.SBValue_GetOpaqueType(self) |
| |
| def Dereference(self) -> "lldb::SBValue": |
| r"""Dereference(SBValue self) -> SBValue""" |
| return _lldb.SBValue_Dereference(self) |
| |
| def AddressOf(self) -> "lldb::SBValue": |
| r"""AddressOf(SBValue self) -> SBValue""" |
| return _lldb.SBValue_AddressOf(self) |
| |
| def TypeIsPointerType(self) -> "bool": |
| r"""TypeIsPointerType(SBValue self) -> bool""" |
| return _lldb.SBValue_TypeIsPointerType(self) |
| |
| def GetTarget(self) -> "lldb::SBTarget": |
| r"""GetTarget(SBValue self) -> SBTarget""" |
| return _lldb.SBValue_GetTarget(self) |
| |
| def GetProcess(self) -> "lldb::SBProcess": |
| r"""GetProcess(SBValue self) -> SBProcess""" |
| return _lldb.SBValue_GetProcess(self) |
| |
| def GetThread(self) -> "lldb::SBThread": |
| r"""GetThread(SBValue self) -> SBThread""" |
| return _lldb.SBValue_GetThread(self) |
| |
| def GetFrame(self) -> "lldb::SBFrame": |
| r"""GetFrame(SBValue self) -> SBFrame""" |
| return _lldb.SBValue_GetFrame(self) |
| |
| def Watch(self, resolve_location: "bool", read: "bool", write: "bool", error: "SBError") -> "lldb::SBWatchpoint": |
| r""" |
| Watch(SBValue self, bool resolve_location, bool read, bool write, SBError error) -> SBWatchpoint |
| |
| Find and watch a variable. |
| It returns an SBWatchpoint, which may be invalid. |
| """ |
| return _lldb.SBValue_Watch(self, resolve_location, read, write, error) |
| |
| def WatchPointee(self, resolve_location: "bool", read: "bool", write: "bool", error: "SBError") -> "lldb::SBWatchpoint": |
| r""" |
| WatchPointee(SBValue self, bool resolve_location, bool read, bool write, SBError error) -> SBWatchpoint |
| |
| Find and watch the location pointed to by a variable. |
| It returns an SBWatchpoint, which may be invalid. |
| """ |
| return _lldb.SBValue_WatchPointee(self, resolve_location, read, write, error) |
| |
| def GetDescription(self, description: "SBStream") -> "bool": |
| r"""GetDescription(SBValue self, SBStream description) -> bool""" |
| return _lldb.SBValue_GetDescription(self, description) |
| |
| def GetPointeeData(self, item_idx: "uint32_t"=0, item_count: "uint32_t"=1) -> "lldb::SBData": |
| r""" |
| GetPointeeData(SBValue self, uint32_t item_idx=0, uint32_t item_count=1) -> SBData |
| |
| Get an SBData wrapping what this SBValue points to. |
| |
| This method will dereference the current SBValue, if its |
| data type is a ``T\*`` or ``T[]``, and extract ``item_count`` elements |
| of type ``T`` from it, copying their contents in an :py:class:`SBData`. |
| |
| :param item_idx: The index of the first item to retrieve. For an array |
| this is equivalent to array[item_idx], for a pointer |
| to ``\*(pointer + item_idx)``. In either case, the measurement |
| unit for item_idx is the ``sizeof(T)`` rather than the byte |
| :param item_count: How many items should be copied into the output. By default |
| only one item is copied, but more can be asked for. |
| :return: The contents of the copied items on success. An empty :py:class:`SBData` otherwise. |
| :rtype: SBData |
| |
| """ |
| return _lldb.SBValue_GetPointeeData(self, item_idx, item_count) |
| |
| def GetData(self) -> "lldb::SBData": |
| r""" |
| GetData(SBValue self) -> SBData |
| |
| Get an SBData wrapping the contents of this SBValue. |
| |
| This method will read the contents of this object in memory |
| and copy them into an SBData for future use. |
| |
| @return |
| An SBData with the contents of this SBValue, on success. |
| An empty SBData otherwise. |
| """ |
| return _lldb.SBValue_GetData(self) |
| |
| def SetData(self, data: "SBData", error: "SBError") -> "bool": |
| r"""SetData(SBValue self, SBData data, SBError error) -> bool""" |
| return _lldb.SBValue_SetData(self, data, error) |
| |
| def Clone(self, new_name: "char const *") -> "lldb::SBValue": |
| r"""Clone(SBValue self, char const * new_name) -> SBValue""" |
| return _lldb.SBValue_Clone(self, new_name) |
| |
| def GetLoadAddress(self) -> "lldb::addr_t": |
| r"""GetLoadAddress(SBValue self) -> lldb::addr_t""" |
| return _lldb.SBValue_GetLoadAddress(self) |
| |
| def GetAddress(self) -> "lldb::SBAddress": |
| r"""GetAddress(SBValue self) -> SBAddress""" |
| return _lldb.SBValue_GetAddress(self) |
| |
| def Persist(self) -> "lldb::SBValue": |
| r"""Persist(SBValue self) -> SBValue""" |
| return _lldb.SBValue_Persist(self) |
| |
| def GetExpressionPath(self, *args) -> "bool": |
| r""" |
| GetExpressionPath(SBValue self, SBStream description) -> bool |
| GetExpressionPath(SBValue self, SBStream description, bool qualify_cxx_base_classes) -> bool |
| Returns an expression path for this value. |
| """ |
| return _lldb.SBValue_GetExpressionPath(self, *args) |
| |
| def EvaluateExpression(self, *args) -> "lldb::SBValue": |
| r""" |
| EvaluateExpression(SBValue self, char const * expr) -> SBValue |
| EvaluateExpression(SBValue self, char const * expr, SBExpressionOptions options) -> SBValue |
| EvaluateExpression(SBValue self, char const * expr, SBExpressionOptions options, char const * name) -> SBValue |
| """ |
| return _lldb.SBValue_EvaluateExpression(self, *args) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBValue self) -> std::string""" |
| return _lldb.SBValue___str__(self) |
| |
| def __get_dynamic__ (self): |
| '''Helper function for the "SBValue.dynamic" property.''' |
| return self.GetDynamicValue (eDynamicCanRunTarget) |
| |
| class children_access(object): |
| '''A helper object that will lazily hand out thread for a process when supplied an index.''' |
| |
| def __init__(self, sbvalue): |
| self.sbvalue = sbvalue |
| |
| def __len__(self): |
| if self.sbvalue: |
| return int(self.sbvalue.GetNumChildren()) |
| return 0 |
| |
| def __getitem__(self, key): |
| if type(key) is int and key < len(self): |
| return self.sbvalue.GetChildAtIndex(key) |
| return None |
| |
| def get_child_access_object(self): |
| '''An accessor function that returns a children_access() object which allows lazy member variable access from a lldb.SBValue object.''' |
| return self.children_access (self) |
| |
| def get_value_child_list(self): |
| '''An accessor function that returns a list() that contains all children in a lldb.SBValue object.''' |
| children = [] |
| accessor = self.get_child_access_object() |
| for idx in range(len(accessor)): |
| children.append(accessor[idx]) |
| return children |
| |
| def __iter__(self): |
| '''Iterate over all child values of a lldb.SBValue object.''' |
| return lldb_iter(self, 'GetNumChildren', 'GetChildAtIndex') |
| |
| def __len__(self): |
| '''Return the number of child values of a lldb.SBValue object.''' |
| return self.GetNumChildren() |
| |
| children = property(get_value_child_list, None, doc='''A read only property that returns a list() of lldb.SBValue objects for the children of the value.''') |
| child = property(get_child_access_object, None, doc='''A read only property that returns an object that can access children of a variable by index (child_value = value.children[12]).''') |
| name = property(GetName, None, doc='''A read only property that returns the name of this value as a string.''') |
| type = property(GetType, None, doc='''A read only property that returns a lldb.SBType object that represents the type for this value.''') |
| size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this value.''') |
| is_in_scope = property(IsInScope, None, doc='''A read only property that returns a boolean value that indicates whether this value is currently lexically in scope.''') |
| format = property(GetName, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''') |
| value = property(GetValue, SetValueFromCString, doc='''A read/write property that gets/sets value from a string.''') |
| value_type = property(GetValueType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eValueType") that represents the type of this value (local, argument, global, register, etc.).''') |
| changed = property(GetValueDidChange, None, doc='''A read only property that returns a boolean value that indicates if this value has changed since it was last updated.''') |
| data = property(GetData, None, doc='''A read only property that returns an lldb object (lldb.SBData) that represents the bytes that make up the value for this object.''') |
| load_addr = property(GetLoadAddress, None, doc='''A read only property that returns the load address of this value as an integer.''') |
| addr = property(GetAddress, None, doc='''A read only property that returns an lldb.SBAddress that represents the address of this value if it is in memory.''') |
| deref = property(Dereference, None, doc='''A read only property that returns an lldb.SBValue that is created by dereferencing this value.''') |
| address_of = property(AddressOf, None, doc='''A read only property that returns an lldb.SBValue that represents the address-of this value.''') |
| error = property(GetError, None, doc='''A read only property that returns the lldb.SBError that represents the error from the last time the variable value was calculated.''') |
| summary = property(GetSummary, None, doc='''A read only property that returns the summary for this value as a string''') |
| description = property(GetObjectDescription, None, doc='''A read only property that returns the language-specific description of this value as a string''') |
| dynamic = property(__get_dynamic__, None, doc='''A read only property that returns an lldb.SBValue that is created by finding the dynamic type of this value.''') |
| location = property(GetLocation, None, doc='''A read only property that returns the location of this value as a string.''') |
| target = property(GetTarget, None, doc='''A read only property that returns the lldb.SBTarget that this value is associated with.''') |
| process = property(GetProcess, None, doc='''A read only property that returns the lldb.SBProcess that this value is associated with, the returned value might be invalid and should be tested.''') |
| thread = property(GetThread, None, doc='''A read only property that returns the lldb.SBThread that this value is associated with, the returned value might be invalid and should be tested.''') |
| frame = property(GetFrame, None, doc='''A read only property that returns the lldb.SBFrame that this value is associated with, the returned value might be invalid and should be tested.''') |
| num_children = property(GetNumChildren, None, doc='''A read only property that returns the number of child lldb.SBValues that this value has.''') |
| unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this SBValue as an usigned integer.''') |
| signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this SBValue as a signed integer.''') |
| |
| def get_expr_path(self): |
| s = SBStream() |
| self.GetExpressionPath (s) |
| return s.GetData() |
| |
| path = property(get_expr_path, None, doc='''A read only property that returns the expression path that one can use to reach this value in an expression.''') |
| |
| def synthetic_child_from_expression(self, name, expr, options=None): |
| if options is None: options = lldb.SBExpressionOptions() |
| child = self.CreateValueFromExpression(name, expr, options) |
| child.SetSyntheticChildrenGenerated(True) |
| return child |
| |
| def synthetic_child_from_data(self, name, data, type): |
| child = self.CreateValueFromData(name, data, type) |
| child.SetSyntheticChildrenGenerated(True) |
| return child |
| |
| def synthetic_child_from_address(self, name, addr, type): |
| child = self.CreateValueFromAddress(name, addr, type) |
| child.SetSyntheticChildrenGenerated(True) |
| return child |
| |
| def __eol_test(val): |
| """Default function for end of list test takes an SBValue object. |
| |
| Return True if val is invalid or it corresponds to a null pointer. |
| Otherwise, return False. |
| """ |
| if not val or val.GetValueAsUnsigned() == 0: |
| return True |
| else: |
| return False |
| |
| # ================================================== |
| # Iterator for lldb.SBValue treated as a linked list |
| # ================================================== |
| def linked_list_iter(self, next_item_name, end_of_list_test=__eol_test): |
| """Generator adaptor to support iteration for SBValue as a linked list. |
| |
| linked_list_iter() is a special purpose iterator to treat the SBValue as |
| the head of a list data structure, where you specify the child member |
| name which points to the next item on the list and you specify the |
| end-of-list test function which takes an SBValue for an item and returns |
| True if EOL is reached and False if not. |
| |
| linked_list_iter() also detects infinite loop and bails out early. |
| |
| The end_of_list_test arg, if omitted, defaults to the __eol_test |
| function above. |
| |
| For example, |
| |
| # Get Frame #0. |
| ... |
| |
| # Get variable 'task_head'. |
| task_head = frame0.FindVariable('task_head') |
| ... |
| |
| for t in task_head.linked_list_iter('next'): |
| print t |
| """ |
| if end_of_list_test(self): |
| return |
| item = self |
| visited = set() |
| try: |
| while not end_of_list_test(item) and not item.GetValueAsUnsigned() in visited: |
| visited.add(item.GetValueAsUnsigned()) |
| yield item |
| # Prepare for the next iteration. |
| item = item.GetChildMemberWithName(next_item_name) |
| except: |
| # Exception occurred. Stop the generator. |
| pass |
| |
| return |
| |
| |
| # Register SBValue in _lldb: |
| _lldb.SBValue_swigregister(SBValue) |
| |
| class SBValueList(object): |
| r""" |
| Represents a collection of SBValues. Both :py:class:`SBFrame.GetVariables()` and |
| :py:class:`SBFrame.GetRegisters()` return a SBValueList. |
| |
| SBValueList supports :py:class:`SBValue` iteration. For example (from test/lldbutil.py),:: |
| |
| def get_registers(frame, kind): |
| '''Returns the registers given the frame and the kind of registers desired. |
| |
| Returns None if there's no such kind. |
| ''' |
| registerSet = frame.GetRegisters() # Return type of SBValueList. |
| for value in registerSet: |
| if kind.lower() in value.GetName().lower(): |
| return value |
| |
| return None |
| |
| def get_GPRs(frame): |
| '''Returns the general purpose registers of the frame as an SBValue. |
| |
| The returned SBValue object is iterable. An example: |
| ... |
| from lldbutil import get_GPRs |
| regs = get_GPRs(frame) |
| for reg in regs: |
| print('%s => %s' % (reg.GetName(), reg.GetValue())) |
| ... |
| ''' |
| return get_registers(frame, 'general purpose') |
| |
| def get_FPRs(frame): |
| '''Returns the floating point registers of the frame as an SBValue. |
| |
| The returned SBValue object is iterable. An example: |
| ... |
| from lldbutil import get_FPRs |
| regs = get_FPRs(frame) |
| for reg in regs: |
| print('%s => %s' % (reg.GetName(), reg.GetValue())) |
| ... |
| ''' |
| return get_registers(frame, 'floating point') |
| |
| def get_ESRs(frame): |
| '''Returns the exception state registers of the frame as an SBValue. |
| |
| The returned SBValue object is iterable. An example: |
| ... |
| from lldbutil import get_ESRs |
| regs = get_ESRs(frame) |
| for reg in regs: |
| print('%s => %s' % (reg.GetName(), reg.GetValue())) |
| ... |
| ''' |
| return get_registers(frame, 'exception state') |
| |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBValueList self) -> SBValueList |
| __init__(SBValueList self, SBValueList rhs) -> SBValueList |
| """ |
| _lldb.SBValueList_swiginit(self, _lldb.new_SBValueList(*args)) |
| __swig_destroy__ = _lldb.delete_SBValueList |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBValueList self) -> bool""" |
| return _lldb.SBValueList_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBValueList___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def Clear(self) -> "void": |
| r"""Clear(SBValueList self)""" |
| return _lldb.SBValueList_Clear(self) |
| |
| def Append(self, *args) -> "void": |
| r""" |
| Append(SBValueList self, SBValue val_obj) |
| Append(SBValueList self, SBValueList value_list) |
| """ |
| return _lldb.SBValueList_Append(self, *args) |
| |
| def GetSize(self) -> "uint32_t": |
| r"""GetSize(SBValueList self) -> uint32_t""" |
| return _lldb.SBValueList_GetSize(self) |
| |
| def GetValueAtIndex(self, idx: "uint32_t") -> "lldb::SBValue": |
| r"""GetValueAtIndex(SBValueList self, uint32_t idx) -> SBValue""" |
| return _lldb.SBValueList_GetValueAtIndex(self, idx) |
| |
| def FindValueObjectByUID(self, uid: "lldb::user_id_t") -> "lldb::SBValue": |
| r"""FindValueObjectByUID(SBValueList self, lldb::user_id_t uid) -> SBValue""" |
| return _lldb.SBValueList_FindValueObjectByUID(self, uid) |
| |
| def GetFirstValueByName(self, name: "char const *") -> "lldb::SBValue": |
| r"""GetFirstValueByName(SBValueList self, char const * name) -> SBValue""" |
| return _lldb.SBValueList_GetFirstValueByName(self, name) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBValueList self) -> std::string""" |
| return _lldb.SBValueList___str__(self) |
| |
| def __iter__(self): |
| '''Iterate over all values in a lldb.SBValueList object.''' |
| return lldb_iter(self, 'GetSize', 'GetValueAtIndex') |
| |
| def __len__(self): |
| return int(self.GetSize()) |
| |
| def __getitem__(self, key): |
| count = len(self) |
| #------------------------------------------------------------ |
| # Access with "int" to get Nth item in the list |
| #------------------------------------------------------------ |
| if type(key) is int: |
| if key < count: |
| return self.GetValueAtIndex(key) |
| #------------------------------------------------------------ |
| # Access with "str" to get values by name |
| #------------------------------------------------------------ |
| elif type(key) is str: |
| matches = [] |
| for idx in range(count): |
| value = self.GetValueAtIndex(idx) |
| if value.name == key: |
| matches.append(value) |
| return matches |
| #------------------------------------------------------------ |
| # Match with regex |
| #------------------------------------------------------------ |
| elif isinstance(key, type(re.compile('.'))): |
| matches = [] |
| for idx in range(count): |
| value = self.GetValueAtIndex(idx) |
| re_match = key.search(value.name) |
| if re_match: |
| matches.append(value) |
| return matches |
| |
| |
| |
| # Register SBValueList in _lldb: |
| _lldb.SBValueList_swigregister(SBValueList) |
| |
| class SBVariablesOptions(object): |
| r"""Describes which variables should be returned from :py:class:`SBFrame.GetVariables`.""" |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBVariablesOptions self) -> SBVariablesOptions |
| __init__(SBVariablesOptions self, SBVariablesOptions options) -> SBVariablesOptions |
| """ |
| _lldb.SBVariablesOptions_swiginit(self, _lldb.new_SBVariablesOptions(*args)) |
| __swig_destroy__ = _lldb.delete_SBVariablesOptions |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBVariablesOptions___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def GetIncludeArguments(self) -> "bool": |
| r"""GetIncludeArguments(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_GetIncludeArguments(self) |
| |
| def SetIncludeArguments(self, arg2: "bool") -> "void": |
| r"""SetIncludeArguments(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetIncludeArguments(self, arg2) |
| |
| def GetIncludeRecognizedArguments(self, arg2: "SBTarget") -> "bool": |
| r"""GetIncludeRecognizedArguments(SBVariablesOptions self, SBTarget arg2) -> bool""" |
| return _lldb.SBVariablesOptions_GetIncludeRecognizedArguments(self, arg2) |
| |
| def SetIncludeRecognizedArguments(self, arg2: "bool") -> "void": |
| r"""SetIncludeRecognizedArguments(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetIncludeRecognizedArguments(self, arg2) |
| |
| def GetIncludeLocals(self) -> "bool": |
| r"""GetIncludeLocals(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_GetIncludeLocals(self) |
| |
| def SetIncludeLocals(self, arg2: "bool") -> "void": |
| r"""SetIncludeLocals(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetIncludeLocals(self, arg2) |
| |
| def GetIncludeStatics(self) -> "bool": |
| r"""GetIncludeStatics(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_GetIncludeStatics(self) |
| |
| def SetIncludeStatics(self, arg2: "bool") -> "void": |
| r"""SetIncludeStatics(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetIncludeStatics(self, arg2) |
| |
| def GetInScopeOnly(self) -> "bool": |
| r"""GetInScopeOnly(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_GetInScopeOnly(self) |
| |
| def SetInScopeOnly(self, arg2: "bool") -> "void": |
| r"""SetInScopeOnly(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetInScopeOnly(self, arg2) |
| |
| def GetIncludeRuntimeSupportValues(self) -> "bool": |
| r"""GetIncludeRuntimeSupportValues(SBVariablesOptions self) -> bool""" |
| return _lldb.SBVariablesOptions_GetIncludeRuntimeSupportValues(self) |
| |
| def SetIncludeRuntimeSupportValues(self, arg2: "bool") -> "void": |
| r"""SetIncludeRuntimeSupportValues(SBVariablesOptions self, bool arg2)""" |
| return _lldb.SBVariablesOptions_SetIncludeRuntimeSupportValues(self, arg2) |
| |
| def GetUseDynamic(self) -> "lldb::DynamicValueType": |
| r"""GetUseDynamic(SBVariablesOptions self) -> lldb::DynamicValueType""" |
| return _lldb.SBVariablesOptions_GetUseDynamic(self) |
| |
| def SetUseDynamic(self, arg2: "lldb::DynamicValueType") -> "void": |
| r"""SetUseDynamic(SBVariablesOptions self, lldb::DynamicValueType arg2)""" |
| return _lldb.SBVariablesOptions_SetUseDynamic(self, arg2) |
| |
| # Register SBVariablesOptions in _lldb: |
| _lldb.SBVariablesOptions_swigregister(SBVariablesOptions) |
| |
| class SBWatchpoint(object): |
| r""" |
| Represents an instance of watchpoint for a specific target program. |
| |
| A watchpoint is determined by the address and the byte size that resulted in |
| this particular instantiation. Each watchpoint has its settable options. |
| |
| See also :py:class:`SBTarget.watchpoint_iter()` for example usage of iterating through the |
| watchpoints of the target. |
| """ |
| |
| thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") |
| __repr__ = _swig_repr |
| |
| def __init__(self, *args): |
| r""" |
| __init__(SBWatchpoint self) -> SBWatchpoint |
| __init__(SBWatchpoint self, SBWatchpoint rhs) -> SBWatchpoint |
| """ |
| _lldb.SBWatchpoint_swiginit(self, _lldb.new_SBWatchpoint(*args)) |
| __swig_destroy__ = _lldb.delete_SBWatchpoint |
| |
| def IsValid(self) -> "bool": |
| r"""IsValid(SBWatchpoint self) -> bool""" |
| return _lldb.SBWatchpoint_IsValid(self) |
| |
| def __nonzero__(self): |
| return _lldb.SBWatchpoint___nonzero__(self) |
| __bool__ = __nonzero__ |
| |
| |
| |
| def __eq__(self, rhs: "SBWatchpoint") -> "bool": |
| r"""__eq__(SBWatchpoint self, SBWatchpoint rhs) -> bool""" |
| return _lldb.SBWatchpoint___eq__(self, rhs) |
| |
| def __ne__(self, rhs: "SBWatchpoint") -> "bool": |
| r"""__ne__(SBWatchpoint self, SBWatchpoint rhs) -> bool""" |
| return _lldb.SBWatchpoint___ne__(self, rhs) |
| |
| def GetError(self) -> "lldb::SBError": |
| r"""GetError(SBWatchpoint self) -> SBError""" |
| return _lldb.SBWatchpoint_GetError(self) |
| |
| def GetID(self) -> "lldb::watch_id_t": |
| r"""GetID(SBWatchpoint self) -> lldb::watch_id_t""" |
| return _lldb.SBWatchpoint_GetID(self) |
| |
| def GetHardwareIndex(self) -> "int32_t": |
| r""" |
| GetHardwareIndex(SBWatchpoint self) -> int32_t |
| |
| With -1 representing an invalid hardware index. |
| """ |
| return _lldb.SBWatchpoint_GetHardwareIndex(self) |
| |
| def GetWatchAddress(self) -> "lldb::addr_t": |
| r"""GetWatchAddress(SBWatchpoint self) -> lldb::addr_t""" |
| return _lldb.SBWatchpoint_GetWatchAddress(self) |
| |
| def GetWatchSize(self) -> "size_t": |
| r"""GetWatchSize(SBWatchpoint self) -> size_t""" |
| return _lldb.SBWatchpoint_GetWatchSize(self) |
| |
| def SetEnabled(self, enabled: "bool") -> "void": |
| r"""SetEnabled(SBWatchpoint self, bool enabled)""" |
| return _lldb.SBWatchpoint_SetEnabled(self, enabled) |
| |
| def IsEnabled(self) -> "bool": |
| r"""IsEnabled(SBWatchpoint self) -> bool""" |
| return _lldb.SBWatchpoint_IsEnabled(self) |
| |
| def GetHitCount(self) -> "uint32_t": |
| r"""GetHitCount(SBWatchpoint self) -> uint32_t""" |
| return _lldb.SBWatchpoint_GetHitCount(self) |
| |
| def GetIgnoreCount(self) -> "uint32_t": |
| r"""GetIgnoreCount(SBWatchpoint self) -> uint32_t""" |
| return _lldb.SBWatchpoint_GetIgnoreCount(self) |
| |
| def SetIgnoreCount(self, n: "uint32_t") -> "void": |
| r"""SetIgnoreCount(SBWatchpoint self, uint32_t n)""" |
| return _lldb.SBWatchpoint_SetIgnoreCount(self, n) |
| |
| def GetCondition(self) -> "char const *": |
| r""" |
| GetCondition(SBWatchpoint self) -> char const * |
| |
| Get the condition expression for the watchpoint. |
| """ |
| return _lldb.SBWatchpoint_GetCondition(self) |
| |
| def SetCondition(self, condition: "char const *") -> "void": |
| r""" |
| SetCondition(SBWatchpoint self, char const * condition) |
| |
| The watchpoint stops only if the condition expression evaluates to true. |
| """ |
| return _lldb.SBWatchpoint_SetCondition(self, condition) |
| |
| def GetDescription(self, description: "SBStream", level: "lldb::DescriptionLevel") -> "bool": |
| r"""GetDescription(SBWatchpoint self, SBStream description, lldb::DescriptionLevel level) -> bool""" |
| return _lldb.SBWatchpoint_GetDescription(self, description, level) |
| |
| @staticmethod |
| def EventIsWatchpointEvent(event: "SBEvent") -> "bool": |
| r"""EventIsWatchpointEvent(SBEvent event) -> bool""" |
| return _lldb.SBWatchpoint_EventIsWatchpointEvent(event) |
| |
| @staticmethod |
| def GetWatchpointEventTypeFromEvent(event: "SBEvent") -> "lldb::WatchpointEventType": |
| r"""GetWatchpointEventTypeFromEvent(SBEvent event) -> lldb::WatchpointEventType""" |
| return _lldb.SBWatchpoint_GetWatchpointEventTypeFromEvent(event) |
| |
| @staticmethod |
| def GetWatchpointFromEvent(event: "SBEvent") -> "lldb::SBWatchpoint": |
| r"""GetWatchpointFromEvent(SBEvent event) -> SBWatchpoint""" |
| return _lldb.SBWatchpoint_GetWatchpointFromEvent(event) |
| |
| def __str__(self) -> "std::string": |
| r"""__str__(SBWatchpoint self) -> std::string""" |
| return _lldb.SBWatchpoint___str__(self) |
| |
| # Register SBWatchpoint in _lldb: |
| _lldb.SBWatchpoint_swigregister(SBWatchpoint) |
| |
| def SBWatchpoint_EventIsWatchpointEvent(event: "SBEvent") -> "bool": |
| r"""SBWatchpoint_EventIsWatchpointEvent(SBEvent event) -> bool""" |
| return _lldb.SBWatchpoint_EventIsWatchpointEvent(event) |
| |
| def SBWatchpoint_GetWatchpointEventTypeFromEvent(event: "SBEvent") -> "lldb::WatchpointEventType": |
| r"""SBWatchpoint_GetWatchpointEventTypeFromEvent(SBEvent event) -> lldb::WatchpointEventType""" |
| return _lldb.SBWatchpoint_GetWatchpointEventTypeFromEvent(event) |
| |
| def SBWatchpoint_GetWatchpointFromEvent(event: "SBEvent") -> "lldb::SBWatchpoint": |
| r"""SBWatchpoint_GetWatchpointFromEvent(SBEvent event) -> SBWatchpoint""" |
| return _lldb.SBWatchpoint_GetWatchpointFromEvent(event) |
| |
| |
| |
| def command(command_name=None, doc=None): |
| import lldb |
| """A decorator function that registers an LLDB command line |
| command that is bound to the function it is attached to.""" |
| def callable(function): |
| """Registers an lldb command for the decorated function.""" |
| command = "command script add -f %s.%s %s" % (function.__module__, function.__name__, command_name or function.__name__) |
| lldb.debugger.HandleCommand(command) |
| if doc: |
| function.__doc__ = doc |
| return function |
| |
| return callable |
| |
| class declaration(object): |
| '''A class that represents a source declaration location with file, line and column.''' |
| def __init__(self, file, line, col): |
| self.file = file |
| self.line = line |
| self.col = col |
| |
| class value_iter(object): |
| '''Allows iterating over the children of an :py:class:`SBValue`.''' |
| def __iter__(self): |
| return self |
| |
| def __next__(self): |
| if self.index >= self.length: |
| raise StopIteration() |
| child_sbvalue = self.sbvalue.GetChildAtIndex(self.index) |
| self.index += 1 |
| return value(child_sbvalue) |
| |
| def next(self): |
| return self.__next__() |
| |
| def __init__(self,value): |
| self.index = 0 |
| self.sbvalue = value |
| if type(self.sbvalue) is value: |
| self.sbvalue = self.sbvalue.sbvalue |
| self.length = self.sbvalue.GetNumChildren() |
| |
| class value(object): |
| '''Wraps :py:class:`SBValue` objects so the resulting object can be used as a variable would be in code. |
| |
| So if you have a Point structure variable in your code in the current frame named "pt", |
| you can initialize an instance of this class with it: :: |
| |
| pt = lldb.value(lldb.frame.FindVariable("pt")) |
| print pt |
| print pt.x |
| print pt.y |
| |
| pt = lldb.value(lldb.frame.FindVariable("rectangle_array")) |
| print rectangle_array[12] |
| print rectangle_array[5].origin.x''' |
| def __init__(self, sbvalue): |
| self.sbvalue = sbvalue |
| |
| def __nonzero__(self): |
| return self.sbvalue.__nonzero__() |
| |
| def __bool__(self): |
| return self.sbvalue.__bool__() |
| |
| def __str__(self): |
| return self.sbvalue.__str__() |
| |
| def __getitem__(self, key): |
| # Allow array access if this value has children... |
| if type(key) is value: |
| key = int(key) |
| if type(key) is int: |
| child_sbvalue = (self.sbvalue.GetValueForExpressionPath("[%i]" % key)) |
| if child_sbvalue and child_sbvalue.IsValid(): |
| return value(child_sbvalue) |
| raise IndexError("Index '%d' is out of range" % key) |
| raise TypeError("No array item of type %s" % str(type(key))) |
| |
| def __iter__(self): |
| return value_iter(self.sbvalue) |
| |
| def __getattr__(self, name): |
| child_sbvalue = self.sbvalue.GetChildMemberWithName (name) |
| if child_sbvalue and child_sbvalue.IsValid(): |
| return value(child_sbvalue) |
| raise AttributeError("Attribute '%s' is not defined" % name) |
| |
| def __add__(self, other): |
| return int(self) + int(other) |
| |
| def __sub__(self, other): |
| return int(self) - int(other) |
| |
| def __mul__(self, other): |
| return int(self) * int(other) |
| |
| def __floordiv__(self, other): |
| return int(self) // int(other) |
| |
| def __mod__(self, other): |
| return int(self) % int(other) |
| |
| def __divmod__(self, other): |
| return int(self) % int(other) |
| |
| def __pow__(self, other): |
| return int(self) ** int(other) |
| |
| def __lshift__(self, other): |
| return int(self) << int(other) |
| |
| def __rshift__(self, other): |
| return int(self) >> int(other) |
| |
| def __and__(self, other): |
| return int(self) & int(other) |
| |
| def __xor__(self, other): |
| return int(self) ^ int(other) |
| |
| def __or__(self, other): |
| return int(self) | int(other) |
| |
| def __div__(self, other): |
| return int(self) / int(other) |
| |
| def __truediv__(self, other): |
| return int(self) / int(other) |
| |
| def __iadd__(self, other): |
| result = self.__add__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __isub__(self, other): |
| result = self.__sub__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __imul__(self, other): |
| result = self.__mul__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __idiv__(self, other): |
| result = self.__div__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __itruediv__(self, other): |
| result = self.__truediv__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ifloordiv__(self, other): |
| result = self.__floordiv__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __imod__(self, other): |
| result = self.__and__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ipow__(self, other): |
| result = self.__pow__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ipow__(self, other, modulo): |
| result = self.__pow__(self, other, modulo) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ilshift__(self, other): |
| result = self.__lshift__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __irshift__(self, other): |
| result = self.__rshift__(other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __iand__(self, other): |
| result = self.__and__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ixor__(self, other): |
| result = self.__xor__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __ior__(self, other): |
| result = self.__ior__(self, other) |
| self.sbvalue.SetValueFromCString (str(result)) |
| return result |
| |
| def __neg__(self): |
| return -int(self) |
| |
| def __pos__(self): |
| return +int(self) |
| |
| def __abs__(self): |
| return abs(int(self)) |
| |
| def __invert__(self): |
| return ~int(self) |
| |
| def __complex__(self): |
| return complex (int(self)) |
| |
| def __int__(self): |
| is_num,is_sign = is_numeric_type(self.sbvalue.GetType().GetCanonicalType().GetBasicType()) |
| if is_num and not is_sign: return self.sbvalue.GetValueAsUnsigned() |
| return self.sbvalue.GetValueAsSigned() |
| |
| def __long__(self): |
| return self.__int__() |
| |
| def __float__(self): |
| return float (self.sbvalue.GetValueAsSigned()) |
| |
| def __oct__(self): |
| return '0%o' % self.sbvalue.GetValueAsUnsigned() |
| |
| def __hex__(self): |
| return '0x%x' % self.sbvalue.GetValueAsUnsigned() |
| |
| def __len__(self): |
| return self.sbvalue.GetNumChildren() |
| |
| def __eq__(self, other): |
| if type(other) is int: |
| return int(self) == other |
| elif type(other) is str: |
| return str(self) == other |
| elif type(other) is value: |
| self_err = SBError() |
| other_err = SBError() |
| self_val = self.sbvalue.GetValueAsUnsigned(self_err) |
| if self_err.fail: |
| raise ValueError("unable to extract value of self") |
| other_val = other.sbvalue.GetValueAsUnsigned(other_err) |
| if other_err.fail: |
| raise ValueError("unable to extract value of other") |
| return self_val == other_val |
| raise TypeError("Unknown type %s, No equality operation defined." % str(type(other))) |
| |
| def __ne__(self, other): |
| return not self.__eq__(other) |
| |
| |
| |
| class SBSyntheticValueProvider(object): |
| def __init__(self,valobj): |
| pass |
| |
| def num_children(self): |
| return 0 |
| |
| def get_child_index(self,name): |
| return None |
| |
| def get_child_at_index(self,idx): |
| return None |
| |
| def update(self): |
| pass |
| |
| def has_children(self): |
| return False |
| |
| |
| |
| |
| |
| # given an lldb.SBBasicType it returns a tuple |
| # (is_numeric, is_signed) |
| # the value of is_signed is undefined if is_numeric == false |
| def is_numeric_type(basic_type): |
| if basic_type == eBasicTypeInvalid: return (False,False) |
| if basic_type == eBasicTypeVoid: return (False,False) |
| if basic_type == eBasicTypeChar: return (True,False) |
| if basic_type == eBasicTypeSignedChar: return (True,True) |
| if basic_type == eBasicTypeUnsignedChar: return (True,False) |
| if basic_type == eBasicTypeWChar: return (True,False) |
| if basic_type == eBasicTypeSignedWChar: return (True,True) |
| if basic_type == eBasicTypeUnsignedWChar: return (True,False) |
| if basic_type == eBasicTypeChar16: return (True,False) |
| if basic_type == eBasicTypeChar32: return (True,False) |
| if basic_type == eBasicTypeShort: return (True,True) |
| if basic_type == eBasicTypeUnsignedShort: return (True,False) |
| if basic_type == eBasicTypeInt: return (True,True) |
| if basic_type == eBasicTypeUnsignedInt: return (True,False) |
| if basic_type == eBasicTypeLong: return (True,True) |
| if basic_type == eBasicTypeUnsignedLong: return (True,False) |
| if basic_type == eBasicTypeLongLong: return (True,True) |
| if basic_type == eBasicTypeUnsignedLongLong: return (True,False) |
| if basic_type == eBasicTypeInt128: return (True,True) |
| if basic_type == eBasicTypeUnsignedInt128: return (True,False) |
| if basic_type == eBasicTypeBool: return (False,False) |
| if basic_type == eBasicTypeHalf: return (True,True) |
| if basic_type == eBasicTypeFloat: return (True,True) |
| if basic_type == eBasicTypeDouble: return (True,True) |
| if basic_type == eBasicTypeLongDouble: return (True,True) |
| if basic_type == eBasicTypeFloatComplex: return (True,True) |
| if basic_type == eBasicTypeDoubleComplex: return (True,True) |
| if basic_type == eBasicTypeLongDoubleComplex: return (True,True) |
| if basic_type == eBasicTypeObjCID: return (False,False) |
| if basic_type == eBasicTypeObjCClass: return (False,False) |
| if basic_type == eBasicTypeObjCSel: return (False,False) |
| if basic_type == eBasicTypeNullPtr: return (False,False) |
| #if basic_type == eBasicTypeOther: |
| return (False,False) |
| |
| |
| |
| debugger_unique_id = 0 |
| SBDebugger.Initialize() |
| debugger = None |
| target = None |
| process = None |
| thread = None |
| frame = None |
| |
| |
| |