[Lldb-commits] [lldb] 3cae8b3 - [lldb][docs] Add a doc page for enums and constants

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Tue Jan 19 09:54:28 PST 2021


Author: Raphael Isemann
Date: 2021-01-19T18:54:05+01:00
New Revision: 3cae8b33297b14449514a87dcaa8996ba40db412

URL: https://github.com/llvm/llvm-project/commit/3cae8b33297b14449514a87dcaa8996ba40db412
DIFF: https://github.com/llvm/llvm-project/commit/3cae8b33297b14449514a87dcaa8996ba40db412.diff

LOG: [lldb][docs] Add a doc page for enums and constants

Enums and constants are currently missing in the new LLDB Python API docs.

In theory we could just let them be autogenerated like the SB API classes, but sadly the generated documentation
suffers from a bunch of problems. Most of these problems come from the way SWIG is representing enums, which is
done by translating every single enum case into its own constant. This has a bunch of nasty effects:

* Because SWIG throws away the enum types, we can't actually reference the enum type itself in the API. Also because automodapi is impossible to script, this can't be fixed in post (at least without running like sed over the output files).
* The lack of enum types also causes that every enum *case* has its own full doc page. Having a full doc page that just shows a single enum case is pointless and it really slows down sphinx.
* There is no SWIG code for the enums, so there is also no place to write documentation strings for them. Also there is no support for copying the doxygen strings (which would be in the wrong format, but better than nothing) for enums (let alone our defines), so we can't really document all this code.
* Because the enum cases are just forwards to the native lldb module (which we mock), automodapi actually takes the `Mock` docstrings and adds it to every single enum case.

I don't see any way to solve this via automodapi or SWIG. The most reasonable way to solve this is IMHO to write a simple Clang tool
that just parses our enum/constant headers and emits an *.rst file that we check in. This way we can do all the LLDB-specific enum case and constant
grouping that we need to make a readable documentation page.

As we're without any real documentation until I get around to write that tool, I wrote a doc page for the enums/constants as a stop gap measure.
Most of this is done by just grepping our enum header and then manually cleaning up all the artifacts and copying the few doc strings we have.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D94959

Added: 
    lldb/docs/python_api_enums.rst

Modified: 
    lldb/bindings/interface/SBLanguageRuntime.i
    lldb/bindings/python/python.swig

Removed: 
    


################################################################################
diff  --git a/lldb/bindings/interface/SBLanguageRuntime.i b/lldb/bindings/interface/SBLanguageRuntime.i
index 244c57048e64..d8698ee36c0d 100644
--- a/lldb/bindings/interface/SBLanguageRuntime.i
+++ b/lldb/bindings/interface/SBLanguageRuntime.i
@@ -9,7 +9,7 @@
 namespace lldb {
 
 %feature("docstring",
-"Utility functions for :py:class:`LanguageType`"
+"Utility functions for :ref:`LanguageType`"
 ) SBLanguageRuntime;
 class SBLanguageRuntime
 {

diff  --git a/lldb/bindings/python/python.swig b/lldb/bindings/python/python.swig
index 599699e33c45..9dc4ab87a4bd 100644
--- a/lldb/bindings/python/python.swig
+++ b/lldb/bindings/python/python.swig
@@ -28,7 +28,11 @@ Some of the important classes are described here:
 * :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."
+  and a source file location. :py:class:`SBCompileUnit` contains SBLineEntry.
+
+The 
diff erent enums in the `lldb` module are described in :doc:`python_api_enums`.
+
+"
 %enddef
 
 /*

diff  --git a/lldb/docs/python_api_enums.rst b/lldb/docs/python_api_enums.rst
new file mode 100644
index 000000000000..b00ac47bd1fa
--- /dev/null
+++ b/lldb/docs/python_api_enums.rst
@@ -0,0 +1,1257 @@
+..
+  This is a sub page of the Python API docs and linked from the main API page.
+  The page isn't in any toctree, so silence the sphinx warnings by marking it as orphan.
+
+:orphan:
+
+Python API enumerators and constants
+====================================
+
+.. py:currentmodule:: lldb
+
+Constants
+*********
+
+Generic register numbers
+------------------------
+
+.. py:data:: LLDB_REGNUM_GENERIC_PC
+
+   Program counter.
+
+.. py:data:: LLDB_REGNUM_GENERIC_SP
+
+   Stack pointer.
+.. py:data:: LLDB_REGNUM_GENERIC_FP
+
+   Frame pointer.
+
+.. py:data:: LLDB_REGNUM_GENERIC_RA
+
+   Return address.
+
+.. py:data:: LLDB_REGNUM_GENERIC_FLAGS
+
+   Processor flags register.
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG1
+
+   The register that would contain pointer size or less argument 1 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG2
+
+   The register that would contain pointer size or less argument 2 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG3
+
+   The register that would contain pointer size or less argument 3 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG4
+
+   The register that would contain pointer size or less argument 4 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG5
+
+   The register that would contain pointer size or less argument 5 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG6
+
+   The register that would contain pointer size or less argument 6 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG7
+
+   The register that would contain pointer size or less argument 7 (if any).
+
+.. py:data:: LLDB_REGNUM_GENERIC_ARG8
+
+   The register that would contain pointer size or less argument 8 (if any).
+
+
+Invalid value definitions
+-------------------------
+
+.. py:data:: LLDB_INVALID_BREAK_ID
+.. py:data:: LLDB_INVALID_WATCH_ID
+.. py:data:: LLDB_INVALID_ADDRESS
+.. py:data:: LLDB_INVALID_INDEX32
+.. py:data:: LLDB_INVALID_IVAR_OFFSET
+.. py:data:: LLDB_INVALID_IMAGE_TOKEN
+.. py:data:: LLDB_INVALID_MODULE_VERSION
+.. py:data:: LLDB_INVALID_REGNUM
+.. py:data:: LLDB_INVALID_UID
+.. py:data:: LLDB_INVALID_PROCESS_ID
+.. py:data:: LLDB_INVALID_THREAD_ID
+.. py:data:: LLDB_INVALID_FRAME_ID
+.. py:data:: LLDB_INVALID_SIGNAL_NUMBER
+.. py:data:: LLDB_INVALID_OFFSET
+.. py:data:: LLDB_INVALID_LINE_NUMBER
+.. py:data:: LLDB_INVALID_QUEUE_ID
+
+CPU types
+---------
+
+.. py:data:: LLDB_ARCH_DEFAULT
+.. py:data:: LLDB_ARCH_DEFAULT_32BIT
+.. py:data:: LLDB_ARCH_DEFAULT_64BIT
+.. py:data:: LLDB_INVALID_CPUTYPE
+
+
+Option set definitions
+----------------------
+
+.. py:data:: LLDB_MAX_NUM_OPTION_SETS
+.. py:data:: LLDB_OPT_SET_ALL
+.. py:data:: LLDB_OPT_SET_1
+.. py:data:: LLDB_OPT_SET_2
+.. py:data:: LLDB_OPT_SET_3
+.. py:data:: LLDB_OPT_SET_4
+.. py:data:: LLDB_OPT_SET_5
+.. py:data:: LLDB_OPT_SET_6
+.. py:data:: LLDB_OPT_SET_7
+.. py:data:: LLDB_OPT_SET_8
+.. py:data:: LLDB_OPT_SET_9
+.. py:data:: LLDB_OPT_SET_10
+.. py:data:: LLDB_OPT_SET_11
+
+Miscellaneous constants
+------------------------
+
+.. py:data:: LLDB_GENERIC_ERROR
+.. py:data:: LLDB_DEFAULT_BREAK_SIZE
+.. py:data:: LLDB_WATCH_TYPE_READ
+.. py:data:: LLDB_WATCH_TYPE_WRITE
+
+
+Enumerators
+***********
+
+State
+-----
+
+.. py:data:: eStateInvalid
+.. py:data:: eStateUnloaded
+
+   Process is object is valid, but not currently loaded.
+
+.. py:data:: eStateConnected
+
+   Process is connected to remote debug services, but not
+   launched or attached to anything yet.
+
+.. py:data:: eStateAttaching
+
+   Process is in the process of launching.
+
+.. py:data:: eStateLaunching
+
+   Process is in the process of launching.
+
+.. py:data:: eStateStopped
+
+   Process or thread is stopped and can be examined.
+
+.. py:data:: eStateRunning
+
+   Process or thread is running and can't be examined.
+
+.. py:data:: eStateStepping
+
+   Process or thread is in the process of stepping and can
+   not be examined.
+
+.. py:data:: eStateCrashed
+
+   Process or thread has crashed and can be examined.
+
+.. py:data:: eStateDetached
+
+   Process has been detached and can't be examined.
+
+.. py:data:: eStateExited
+
+   Process has exited and can't be examined.
+
+.. py:data:: eStateSuspended
+
+   Process or thread is in a suspended state as far
+   as the debugger is concerned while other processes
+   or threads get the chance to run.
+
+LaunchFlag
+----------
+
+.. py:data:: eLaunchFlagNone
+.. py:data:: eLaunchFlagExec
+
+   Exec when launching and turn the calling process into a new process.
+
+.. py:data:: eLaunchFlagDebug
+
+   Stop as soon as the process launches to allow the process to be debugged.
+
+.. py:data:: eLaunchFlagStopAtEntry
+
+   Stop at the program entry point instead of auto-continuing when launching or attaching at entry point.
+
+.. py:data:: eLaunchFlagDisableASLR
+
+   Disable Address Space Layout Randomization.
+
+.. py:data:: eLaunchFlagDisableSTDIO
+
+   Disable stdio for inferior process (e.g. for a GUI app).
+
+.. py:data:: eLaunchFlagLaunchInTTY
+
+   Launch the process in a new TTY if supported by the host.
+
+.. py:data:: eLaunchFlagLaunchInShell
+
+   Launch the process inside a shell to get shell expansion.
+
+.. py:data:: eLaunchFlagLaunchInSeparateProcessGroup
+
+   Launch the process in a separate process group if you are going to hand the process off (e.g. to debugserver)
+
+.. py:data:: eLaunchFlagDontSetExitStatus
+
+   set this flag so lldb & the handee don't race to set its exit status.
+
+.. py:data:: eLaunchFlagDetachOnError
+
+   If set, then the client stub should detach rather than killing  the debugee
+   if it loses connection with lldb.
+
+.. py:data:: eLaunchFlagShellExpandArguments
+
+   Perform shell-style argument expansion
+
+.. py:data:: eLaunchFlagCloseTTYOnExit
+
+   Close the open TTY on exit
+
+.. py:data:: eLaunchFlagInheritTCCFromParent
+
+   Don't make the inferior responsible for its own TCC
+   permissions but instead inherit them from its parent.
+
+RunMode
+-------
+.. py:data:: eOnlyThisThread
+.. py:data:: eAllThreads
+.. py:data:: eOnlyDuringStepping
+
+
+ByteOrder
+---------
+
+.. py:data:: eByteOrderInvalid
+.. py:data:: eByteOrderBig
+.. py:data:: eByteOrderPDP
+.. py:data:: eByteOrderLittle
+
+Encoding
+--------
+
+.. py:data:: eEncodingInvalid
+.. py:data:: eEncodingUint
+.. py:data:: eEncodingSint
+.. py:data:: eEncodingIEEE754
+.. py:data:: eEncodingVector
+
+Format
+------
+
+.. py:data:: eFormatDefault
+.. py:data:: eFormatInvalid
+.. py:data:: eFormatBoolean
+.. py:data:: eFormatBinary
+.. py:data:: eFormatBytes
+.. py:data:: eFormatBytesWithASCII
+.. py:data:: eFormatChar
+.. py:data:: eFormatCharPrintable
+.. py:data:: eFormatComplex
+.. py:data:: eFormatComplexFloat
+.. py:data:: eFormatCString
+.. py:data:: eFormatDecimal
+.. py:data:: eFormatEnum
+.. py:data:: eFormatHex
+.. py:data:: eFormatHexUppercase
+.. py:data:: eFormatFloat
+.. py:data:: eFormatOctal
+.. py:data:: eFormatOSType
+.. py:data:: eFormatUnicode16
+.. py:data:: eFormatUnicode32
+.. py:data:: eFormatUnsigned
+.. py:data:: eFormatPointer
+.. py:data:: eFormatVectorOfChar
+.. py:data:: eFormatVectorOfSInt8
+.. py:data:: eFormatVectorOfUInt8
+.. py:data:: eFormatVectorOfSInt16
+.. py:data:: eFormatVectorOfUInt16
+.. py:data:: eFormatVectorOfSInt32
+.. py:data:: eFormatVectorOfUInt32
+.. py:data:: eFormatVectorOfSInt64
+.. py:data:: eFormatVectorOfUInt64
+.. py:data:: eFormatVectorOfFloat16
+.. py:data:: eFormatVectorOfFloat32
+.. py:data:: eFormatVectorOfFloat64
+.. py:data:: eFormatVectorOfUInt128
+.. py:data:: eFormatComplexInteger
+.. py:data:: eFormatCharArray
+.. py:data:: eFormatAddressInfo
+.. py:data:: eFormatHexFloat
+.. py:data:: eFormatInstruction
+.. py:data:: eFormatVoid
+.. py:data:: eFormatUnicode8
+
+DescriptionLevel
+----------------
+
+.. py:data:: eDescriptionLevelBrief
+.. py:data:: eDescriptionLevelFull
+.. py:data:: eDescriptionLevelVerbose
+.. py:data:: eDescriptionLevelInitial
+
+ScriptLanguage
+--------------
+
+.. py:data:: eScriptLanguageNone
+.. py:data:: eScriptLanguagePython
+.. py:data:: eScriptLanguageLua
+.. py:data:: eScriptLanguageUnknown
+.. py:data:: eScriptLanguageDefault
+
+RegisterKind
+------------
+
+.. py:data:: eRegisterKindEHFrame
+.. py:data:: eRegisterKindDWARF
+.. py:data:: eRegisterKindGeneric
+.. py:data:: eRegisterKindProcessPlugin
+.. py:data:: eRegisterKindLLDB
+
+StopReason
+----------
+
+.. py:data:: eStopReasonInvalid
+.. py:data:: eStopReasonNone
+.. py:data:: eStopReasonTrace
+.. py:data:: eStopReasonBreakpoint
+.. py:data:: eStopReasonWatchpoint
+.. py:data:: eStopReasonSignal
+.. py:data:: eStopReasonException
+.. py:data:: eStopReasonExec
+.. py:data:: eStopReasonPlanComplete
+.. py:data:: eStopReasonThreadExiting
+.. py:data:: eStopReasonInstrumentation
+
+ReturnStatus
+------------
+
+.. py:data:: eReturnStatusInvalid
+.. py:data:: eReturnStatusSuccessFinishNoResult
+.. py:data:: eReturnStatusSuccessFinishResult
+.. py:data:: eReturnStatusSuccessContinuingNoResult
+.. py:data:: eReturnStatusSuccessContinuingResult
+.. py:data:: eReturnStatusStarted
+.. py:data:: eReturnStatusFailed
+.. py:data:: eReturnStatusQuit
+
+Expression
+----------
+
+The results of expression evaluation.
+
+.. py:data:: eExpressionCompleted
+.. py:data:: eExpressionSetupError
+.. py:data:: eExpressionParseError
+.. py:data:: eExpressionDiscarded
+.. py:data:: eExpressionInterrupted
+.. py:data:: eExpressionHitBreakpoint
+.. py:data:: eExpressionTimedOut
+.. py:data:: eExpressionResultUnavailable
+.. py:data:: eExpressionStoppedForDebug
+.. py:data:: eExpressionThreadVanished
+
+SearchDepth
+-----------
+
+.. py:data:: eSearchDepthInvalid
+.. py:data:: eSearchDepthTarget
+.. py:data:: eSearchDepthModule
+.. py:data:: eSearchDepthCompUnit
+.. py:data:: eSearchDepthFunction
+.. py:data:: eSearchDepthBlock
+.. py:data:: eSearchDepthAddress
+
+ConnectionStatus
+----------------
+
+.. py:data:: eConnectionStatusSuccess
+
+   Success.
+
+.. py:data:: eConnectionStatusEndOfFile
+
+   End-of-file encountered.
+
+.. py:data:: eConnectionStatusError
+
+   Error encountered.
+
+.. py:data:: eConnectionStatusTimedOut
+
+   Request timed out.
+
+.. py:data:: eConnectionStatusNoConnection
+
+   No connection.
+
+.. py:data:: eConnectionStatusLostConnection
+
+   Lost connection while connected to a  valid connection.
+
+.. py:data:: eConnectionStatusInterrupted
+
+   Interrupted read.
+
+ErrorType
+---------
+
+.. py:data:: eErrorTypeInvalid
+.. py:data:: eErrorTypeGeneric
+
+   Generic errors that can be any value.
+
+.. py:data:: eErrorTypeMachKernel
+
+   Mach kernel error codes.
+
+.. py:data:: eErrorTypePOSIX
+
+   POSIX error codes.
+
+.. py:data:: eErrorTypeExpression
+
+   These are from the ExpressionResults enum.
+
+.. py:data:: eErrorTypeWin32
+
+   Standard Win32 error codes.
+
+
+ValueType
+---------
+
+.. py:data:: eValueTypeInvalid
+.. py:data:: eValueTypeVariableGlobal
+
+   Global variable.
+
+.. py:data:: eValueTypeVariableStatic
+
+   Static variable.
+
+.. py:data:: eValueTypeVariableArgument
+
+   Funfction argument variable.
+
+.. py:data:: eValueTypeVariableLocal
+
+   Function local variable.
+
+.. py:data:: eValueTypeRegister
+
+   Stack frame register.
+
+.. py:data:: eValueTypeRegisterSet
+
+   A collection of stack frame register values.
+
+.. py:data:: eValueTypeConstResult
+
+   Constant result variables.
+
+.. py:data:: eValueTypeVariableThreadLocal
+
+   Thread local storage variable.
+
+InputReader
+-----------
+
+Token size/granularities for Input Readers.
+
+.. py:data:: eInputReaderGranularityInvalid
+.. py:data:: eInputReaderGranularityByte
+.. py:data:: eInputReaderGranularityWord
+.. py:data:: eInputReaderGranularityLine
+.. py:data:: eInputReaderGranularityAll
+
+SymbolContextItem
+-----------------
+
+These mask bits allow a common interface for queries that can
+limit the amount of information that gets parsed to only the
+information that is requested. These bits also can indicate what
+actually did get resolved during query function calls.
+
+Each definition corresponds to a one of the member variables
+in this class, and requests that that item be resolved, or
+indicates that the member did get resolved.
+
+.. py:data:: eSymbolContextTarget
+
+   Set when target is requested from a query, or was located
+   in query results.
+
+.. py:data:: eSymbolContextModule
+
+   Set when module is requested from a query, or was located
+   in query results.
+
+.. py:data:: eSymbolContextCompUnit
+
+   Set when compilation unit is requested from a query, or was
+   located in query results.
+
+.. py:data:: eSymbolContextFunction
+
+   Set when function is requested from a query, or was located
+   in query results.
+
+.. py:data:: eSymbolContextBlock
+
+   Set when the deepest block is requested from a query, or
+   was located in query results.
+
+.. py:data:: eSymbolContextLineEntry
+
+   Set when line entry is requested from a query, or was
+   located in query results.
+
+.. py:data:: eSymbolContextSymbol
+
+   Set when symbol is requested from a query, or was located
+   in query results
+
+.. py:data:: eSymbolContextEverything
+
+   Indicates to try and lookup everything up during a routine
+   symbol context query.
+
+.. py:data:: eSymbolContextVariable
+
+   Set when global or static variable is requested from a
+   query, or was located in query results.
+   eSymbolContextVariable is potentially expensive to lookup so
+   it isn't included in eSymbolContextEverything which stops it
+   from being used during frame PC lookups and many other
+   potential address to symbol context lookups.
+
+Permissions
+-----------
+.. py:data:: ePermissionsWritable
+.. py:data:: ePermissionsReadable
+.. py:data:: ePermissionsExecutable
+
+InputReader
+-----------
+
+.. py:data:: eInputReaderActivate
+
+   Reader is newly pushed onto the reader stack.
+
+.. py:data:: eInputReaderAsynchronousOutputWritten
+
+   An async output event occurred; the reader may want to do something.
+
+.. py:data:: eInputReaderReactivate
+
+   Reader is on top of the stack again after another  reader was popped off.
+
+.. py:data:: eInputReaderDeactivate
+
+   Another reader was pushed on the stack.
+
+.. py:data:: eInputReaderGotToken
+
+   Reader got one of its tokens (granularity).
+
+.. py:data:: eInputReaderInterrupt
+
+   Reader received an interrupt signal (probably from  a control-c).
+
+.. py:data:: eInputReaderEndOfFile
+
+   Reader received an EOF char (probably from a control-d).
+
+.. py:data:: eInputReaderDone
+
+   Reader was just popped off the stack and is done.
+
+BreakpointEventType
+-------------------
+
+.. py:data:: eBreakpointEventTypeInvalidType
+.. py:data:: eBreakpointEventTypeAdded
+.. py:data:: eBreakpointEventTypeRemoved
+.. py:data:: eBreakpointEventTypeLocationsAdded
+.. py:data:: eBreakpointEventTypeLocationsRemoved
+.. py:data:: eBreakpointEventTypeLocationsResolved
+.. py:data:: eBreakpointEventTypeEnabled
+.. py:data:: eBreakpointEventTypeDisabled
+.. py:data:: eBreakpointEventTypeCommandChanged
+.. py:data:: eBreakpointEventTypeConditionChanged
+.. py:data:: eBreakpointEventTypeIgnoreChanged
+.. py:data:: eBreakpointEventTypeThreadChanged
+.. py:data:: eBreakpointEventTypeAutoContinueChanged
+
+WatchpointEventType
+-------------------
+
+.. py:data:: eWatchpointEventTypeInvalidType
+.. py:data:: eWatchpointEventTypeAdded
+.. py:data:: eWatchpointEventTypeRemoved
+.. py:data:: eWatchpointEventTypeEnabled
+.. py:data:: eWatchpointEventTypeDisabled
+.. py:data:: eWatchpointEventTypeCommandChanged
+.. py:data:: eWatchpointEventTypeConditionChanged
+.. py:data:: eWatchpointEventTypeIgnoreChanged
+.. py:data:: eWatchpointEventTypeThreadChanged
+.. py:data:: eWatchpointEventTypeTypeChanged
+
+.. _LanguageType:
+
+LanguageType
+------------
+
+.. py:data:: eLanguageTypeUnknown
+.. py:data:: eLanguageTypeC89
+.. py:data:: eLanguageTypeC
+.. py:data:: eLanguageTypeAda83
+.. py:data:: eLanguageTypeC_plus_plus
+.. py:data:: eLanguageTypeCobol74
+.. py:data:: eLanguageTypeCobol85
+.. py:data:: eLanguageTypeFortran77
+.. py:data:: eLanguageTypeFortran90
+.. py:data:: eLanguageTypePascal83
+.. py:data:: eLanguageTypeModula2
+.. py:data:: eLanguageTypeJava
+.. py:data:: eLanguageTypeC99
+.. py:data:: eLanguageTypeAda95
+.. py:data:: eLanguageTypeFortran95
+.. py:data:: eLanguageTypePLI
+.. py:data:: eLanguageTypeObjC
+.. py:data:: eLanguageTypeObjC_plus_plus
+.. py:data:: eLanguageTypeUPC
+.. py:data:: eLanguageTypeD
+.. py:data:: eLanguageTypePython
+.. py:data:: eLanguageTypeOpenCL
+.. py:data:: eLanguageTypeGo
+.. py:data:: eLanguageTypeModula3
+.. py:data:: eLanguageTypeHaskell
+.. py:data:: eLanguageTypeC_plus_plus_03
+.. py:data:: eLanguageTypeC_plus_plus_11
+.. py:data:: eLanguageTypeOCaml
+.. py:data:: eLanguageTypeRust
+.. py:data:: eLanguageTypeC11
+.. py:data:: eLanguageTypeSwift
+.. py:data:: eLanguageTypeJulia
+.. py:data:: eLanguageTypeDylan
+.. py:data:: eLanguageTypeC_plus_plus_14
+.. py:data:: eLanguageTypeFortran03
+.. py:data:: eLanguageTypeFortran08
+.. py:data:: eLanguageTypeMipsAssembler
+.. py:data:: eLanguageTypeExtRenderScript
+.. py:data:: eNumLanguageTypes
+
+InstrumentationRuntimeType
+--------------------------
+
+.. py:data:: eInstrumentationRuntimeTypeAddressSanitizer
+.. py:data:: eInstrumentationRuntimeTypeThreadSanitizer
+.. py:data:: eInstrumentationRuntimeTypeUndefinedBehaviorSanitizer
+.. py:data:: eInstrumentationRuntimeTypeMainThreadChecker
+.. py:data:: eInstrumentationRuntimeTypeSwiftRuntimeReporting
+.. py:data:: eNumInstrumentationRuntimeTypes
+
+DynamicValueType
+----------------
+
+.. py:data:: eNoDynamicValues
+.. py:data:: eDynamicCanRunTarget
+.. py:data:: eDynamicDontRunTarget
+
+StopShowColumn
+--------------
+
+.. py:data:: eStopShowColumnAnsiOrCaret
+.. py:data:: eStopShowColumnAnsi
+.. py:data:: eStopShowColumnCaret
+.. py:data:: eStopShowColumnNone
+
+AccessType
+----------
+
+.. py:data:: eAccessNone
+.. py:data:: eAccessPublic
+.. py:data:: eAccessPrivate
+.. py:data:: eAccessProtected
+.. py:data:: eAccessPackage
+
+CommandArgumentType
+-------------------
+
+.. py:data:: eArgTypeAddress
+.. py:data:: eArgTypeAddressOrExpression
+.. py:data:: eArgTypeAliasName
+.. py:data:: eArgTypeAliasOptions
+.. py:data:: eArgTypeArchitecture
+.. py:data:: eArgTypeBoolean
+.. py:data:: eArgTypeBreakpointID
+.. py:data:: eArgTypeBreakpointIDRange
+.. py:data:: eArgTypeBreakpointName
+.. py:data:: eArgTypeByteSize
+.. py:data:: eArgTypeClassName
+.. py:data:: eArgTypeCommandName
+.. py:data:: eArgTypeCount
+.. py:data:: eArgTypeDescriptionVerbosity
+.. py:data:: eArgTypeDirectoryName
+.. py:data:: eArgTypeDisassemblyFlavor
+.. py:data:: eArgTypeEndAddress
+.. py:data:: eArgTypeExpression
+.. py:data:: eArgTypeExpressionPath
+.. py:data:: eArgTypeExprFormat
+.. py:data:: eArgTypeFileLineColumn
+.. py:data:: eArgTypeFilename
+.. py:data:: eArgTypeFormat
+.. py:data:: eArgTypeFrameIndex
+.. py:data:: eArgTypeFullName
+.. py:data:: eArgTypeFunctionName
+.. py:data:: eArgTypeFunctionOrSymbol
+.. py:data:: eArgTypeGDBFormat
+.. py:data:: eArgTypeHelpText
+.. py:data:: eArgTypeIndex
+.. py:data:: eArgTypeLanguage
+.. py:data:: eArgTypeLineNum
+.. py:data:: eArgTypeLogCategory
+.. py:data:: eArgTypeLogChannel
+.. py:data:: eArgTypeMethod
+.. py:data:: eArgTypeName
+.. py:data:: eArgTypeNewPathPrefix
+.. py:data:: eArgTypeNumLines
+.. py:data:: eArgTypeNumberPerLine
+.. py:data:: eArgTypeOffset
+.. py:data:: eArgTypeOldPathPrefix
+.. py:data:: eArgTypeOneLiner
+.. py:data:: eArgTypePath
+.. py:data:: eArgTypePermissionsNumber
+.. py:data:: eArgTypePermissionsString
+.. py:data:: eArgTypePid
+.. py:data:: eArgTypePlugin
+.. py:data:: eArgTypeProcessName
+.. py:data:: eArgTypePythonClass
+.. py:data:: eArgTypePythonFunction
+.. py:data:: eArgTypePythonScript
+.. py:data:: eArgTypeQueueName
+.. py:data:: eArgTypeRegisterName
+.. py:data:: eArgTypeRegularExpression
+.. py:data:: eArgTypeRunArgs
+.. py:data:: eArgTypeRunMode
+.. py:data:: eArgTypeScriptedCommandSynchronicity
+.. py:data:: eArgTypeScriptLang
+.. py:data:: eArgTypeSearchWord
+.. py:data:: eArgTypeSelector
+.. py:data:: eArgTypeSettingIndex
+.. py:data:: eArgTypeSettingKey
+.. py:data:: eArgTypeSettingPrefix
+.. py:data:: eArgTypeSettingVariableName
+.. py:data:: eArgTypeShlibName
+.. py:data:: eArgTypeSourceFile
+.. py:data:: eArgTypeSortOrder
+.. py:data:: eArgTypeStartAddress
+.. py:data:: eArgTypeSummaryString
+.. py:data:: eArgTypeSymbol
+.. py:data:: eArgTypeThreadID
+.. py:data:: eArgTypeThreadIndex
+.. py:data:: eArgTypeThreadName
+.. py:data:: eArgTypeTypeName
+.. py:data:: eArgTypeUnsignedInteger
+.. py:data:: eArgTypeUnixSignal
+.. py:data:: eArgTypeVarName
+.. py:data:: eArgTypeValue
+.. py:data:: eArgTypeWidth
+.. py:data:: eArgTypeNone
+.. py:data:: eArgTypePlatform
+.. py:data:: eArgTypeWatchpointID
+.. py:data:: eArgTypeWatchpointIDRange
+.. py:data:: eArgTypeWatchType
+.. py:data:: eArgRawInput
+.. py:data:: eArgTypeCommand
+.. py:data:: eArgTypeColumnNum
+.. py:data:: eArgTypeModuleUUID
+.. py:data:: eArgTypeLastArg
+
+SymbolType
+----------
+
+.. py:data:: eSymbolTypeAny
+.. py:data:: eSymbolTypeInvalid
+.. py:data:: eSymbolTypeAbsolute
+.. py:data:: eSymbolTypeCode
+.. py:data:: eSymbolTypeResolver
+.. py:data:: eSymbolTypeData
+.. py:data:: eSymbolTypeTrampoline
+.. py:data:: eSymbolTypeRuntime
+.. py:data:: eSymbolTypeException
+.. py:data:: eSymbolTypeSourceFile
+.. py:data:: eSymbolTypeHeaderFile
+.. py:data:: eSymbolTypeObjectFile
+.. py:data:: eSymbolTypeCommonBlock
+.. py:data:: eSymbolTypeBlock
+.. py:data:: eSymbolTypeLocal
+.. py:data:: eSymbolTypeParam
+.. py:data:: eSymbolTypeVariable
+.. py:data:: eSymbolTypeVariableType
+.. py:data:: eSymbolTypeLineEntry
+.. py:data:: eSymbolTypeLineHeader
+.. py:data:: eSymbolTypeScopeBegin
+.. py:data:: eSymbolTypeScopeEnd
+.. py:data:: eSymbolTypeAdditional
+.. py:data:: eSymbolTypeCompiler
+.. py:data:: eSymbolTypeInstrumentation
+.. py:data:: eSymbolTypeUndefined
+.. py:data:: eSymbolTypeObjCClass
+.. py:data:: eSymbolTypeObjCMetaClass
+.. py:data:: eSymbolTypeObjCIVar
+.. py:data:: eSymbolTypeReExported
+
+SectionType
+-----------
+
+.. py:data:: eSectionTypeInvalid
+.. py:data:: eSectionTypeCode
+.. py:data:: eSectionTypeContainer
+.. py:data:: eSectionTypeData
+.. py:data:: eSectionTypeDataCString
+.. py:data:: eSectionTypeDataCStringPointers
+.. py:data:: eSectionTypeDataSymbolAddress
+.. py:data:: eSectionTypeData4
+.. py:data:: eSectionTypeData8
+.. py:data:: eSectionTypeData16
+.. py:data:: eSectionTypeDataPointers
+.. py:data:: eSectionTypeDebug
+.. py:data:: eSectionTypeZeroFill
+.. py:data:: eSectionTypeDataObjCMessageRefs
+.. py:data:: eSectionTypeDataObjCCFStrings
+.. py:data:: eSectionTypeDWARFDebugAbbrev
+.. py:data:: eSectionTypeDWARFDebugAddr
+.. py:data:: eSectionTypeDWARFDebugAranges
+.. py:data:: eSectionTypeDWARFDebugCuIndex
+.. py:data:: eSectionTypeDWARFDebugFrame
+.. py:data:: eSectionTypeDWARFDebugInfo
+.. py:data:: eSectionTypeDWARFDebugLine
+.. py:data:: eSectionTypeDWARFDebugLoc
+.. py:data:: eSectionTypeDWARFDebugMacInfo
+.. py:data:: eSectionTypeDWARFDebugMacro
+.. py:data:: eSectionTypeDWARFDebugPubNames
+.. py:data:: eSectionTypeDWARFDebugPubTypes
+.. py:data:: eSectionTypeDWARFDebugRanges
+.. py:data:: eSectionTypeDWARFDebugStr
+.. py:data:: eSectionTypeDWARFDebugStrOffsets
+.. py:data:: eSectionTypeDWARFAppleNames
+.. py:data:: eSectionTypeDWARFAppleTypes
+.. py:data:: eSectionTypeDWARFAppleNamespaces
+.. py:data:: eSectionTypeDWARFAppleObjC
+.. py:data:: eSectionTypeELFSymbolTable
+.. py:data:: eSectionTypeELFDynamicSymbols
+.. py:data:: eSectionTypeELFRelocationEntries
+.. py:data:: eSectionTypeELFDynamicLinkInfo
+.. py:data:: eSectionTypeEHFrame
+.. py:data:: eSectionTypeARMexidx
+.. py:data:: eSectionTypeARMextab
+.. py:data:: eSectionTypeCompactUnwind
+.. py:data:: eSectionTypeGoSymtab
+.. py:data:: eSectionTypeAbsoluteAddress
+.. py:data:: eSectionTypeDWARFGNUDebugAltLink
+.. py:data:: eSectionTypeDWARFDebugTypes
+.. py:data:: eSectionTypeDWARFDebugNames
+.. py:data:: eSectionTypeOther
+.. py:data:: eSectionTypeDWARFDebugLineStr
+.. py:data:: eSectionTypeDWARFDebugRngLists
+.. py:data:: eSectionTypeDWARFDebugLocLists
+.. py:data:: eSectionTypeDWARFDebugAbbrevDwo
+.. py:data:: eSectionTypeDWARFDebugInfoDwo
+.. py:data:: eSectionTypeDWARFDebugStrDwo
+.. py:data:: eSectionTypeDWARFDebugStrOffsetsDwo
+.. py:data:: eSectionTypeDWARFDebugTypesDwo
+.. py:data:: eSectionTypeDWARFDebugRngListsDwo
+.. py:data:: eSectionTypeDWARFDebugLocDwo
+.. py:data:: eSectionTypeDWARFDebugLocListsDwo
+.. py:data:: eSectionTypeDWARFDebugTuIndex
+
+EmulatorInstructionOption
+-------------------------
+
+.. py:data:: eEmulateInstructionOptionNone
+.. py:data:: eEmulateInstructionOptionAutoAdvancePC
+.. py:data:: eEmulateInstructionOptionIgnoreConditions
+
+FunctionNameType
+----------------
+
+.. py:data:: eFunctionNameTypeNone
+.. py:data:: eFunctionNameTypeAuto
+.. py:data:: eFunctionNameTypeFull
+.. py:data:: eFunctionNameTypeBase
+.. py:data:: eFunctionNameTypeMethod
+.. py:data:: eFunctionNameTypeSelector
+.. py:data:: eFunctionNameTypeAny
+
+BasicType
+---------
+
+.. py:data:: eBasicTypeInvalid
+.. py:data:: eBasicTypeVoid
+.. py:data:: eBasicTypeChar
+.. py:data:: eBasicTypeSignedChar
+.. py:data:: eBasicTypeUnsignedChar
+.. py:data:: eBasicTypeWChar
+.. py:data:: eBasicTypeSignedWChar
+.. py:data:: eBasicTypeUnsignedWChar
+.. py:data:: eBasicTypeChar16
+.. py:data:: eBasicTypeChar32
+.. py:data:: eBasicTypeShort
+.. py:data:: eBasicTypeUnsignedShort
+.. py:data:: eBasicTypeInt
+.. py:data:: eBasicTypeUnsignedInt
+.. py:data:: eBasicTypeLong
+.. py:data:: eBasicTypeUnsignedLong
+.. py:data:: eBasicTypeLongLong
+.. py:data:: eBasicTypeUnsignedLongLong
+.. py:data:: eBasicTypeInt128
+.. py:data:: eBasicTypeUnsignedInt128
+.. py:data:: eBasicTypeBool
+.. py:data:: eBasicTypeHalf
+.. py:data:: eBasicTypeFloat
+.. py:data:: eBasicTypeDouble
+.. py:data:: eBasicTypeLongDouble
+.. py:data:: eBasicTypeFloatComplex
+.. py:data:: eBasicTypeDoubleComplex
+.. py:data:: eBasicTypeLongDoubleComplex
+.. py:data:: eBasicTypeObjCID
+.. py:data:: eBasicTypeObjCClass
+.. py:data:: eBasicTypeObjCSel
+.. py:data:: eBasicTypeNullPtr
+.. py:data:: eBasicTypeOther
+
+TraceType
+---------
+
+.. py:data:: eTraceTypeNone
+.. py:data:: eTraceTypeProcessorTrace
+
+StructuredDataType
+------------------
+
+.. py:data:: eStructuredDataTypeInvalid
+.. py:data:: eStructuredDataTypeNull
+.. py:data:: eStructuredDataTypeGeneric
+.. py:data:: eStructuredDataTypeArray
+.. py:data:: eStructuredDataTypeInteger
+.. py:data:: eStructuredDataTypeFloat
+.. py:data:: eStructuredDataTypeBoolean
+.. py:data:: eStructuredDataTypeString
+.. py:data:: eStructuredDataTypeDictionary
+
+TypeClass
+---------
+
+.. py:data:: eTypeClassInvalid
+.. py:data:: eTypeClassArray
+.. py:data:: eTypeClassBlockPointer
+.. py:data:: eTypeClassBuiltin
+.. py:data:: eTypeClassClass
+.. py:data:: eTypeClassFloat
+.. py:data:: eTypeClassComplexInteger
+.. py:data:: eTypeClassComplexFloat
+.. py:data:: eTypeClassFunction
+.. py:data:: eTypeClassMemberPointer
+.. py:data:: eTypeClassObjCObject
+.. py:data:: eTypeClassObjCInterface
+.. py:data:: eTypeClassObjCObjectPointer
+.. py:data:: eTypeClassPointer
+.. py:data:: eTypeClassReference
+.. py:data:: eTypeClassStruct
+.. py:data:: eTypeClassTypedef
+.. py:data:: eTypeClassUnion
+.. py:data:: eTypeClassVector
+.. py:data:: eTypeClassOther
+.. py:data:: eTypeClassAny
+
+TemplateArgument
+----------------
+
+.. py:data:: eTemplateArgumentKindNull
+.. py:data:: eTemplateArgumentKindType
+.. py:data:: eTemplateArgumentKindDeclaration
+.. py:data:: eTemplateArgumentKindIntegral
+.. py:data:: eTemplateArgumentKindTemplate
+.. py:data:: eTemplateArgumentKindTemplateExpansion
+.. py:data:: eTemplateArgumentKindExpression
+.. py:data:: eTemplateArgumentKindPack
+.. py:data:: eTemplateArgumentKindNullPtr
+.. py:data:: eTemplateArgumentKindUncommonValue
+
+TypeOption
+----------
+
+Options that can be set for a formatter to alter its behavior. Not
+all of these are applicable to all formatter types.
+
+.. py:data:: eTypeOptionNone
+.. py:data:: eTypeOptionCascade
+.. py:data:: eTypeOptionSkipPointers
+.. py:data:: eTypeOptionSkipReferences
+.. py:data:: eTypeOptionHideChildren
+.. py:data:: eTypeOptionHideValue
+.. py:data:: eTypeOptionShowOneLiner
+.. py:data:: eTypeOptionHideNames
+.. py:data:: eTypeOptionNonCacheable
+.. py:data:: eTypeOptionHideEmptyAggregates
+.. py:data:: eTypeOptionFrontEndWantsDereference
+
+FrameCompare
+------------
+
+This is the return value for frame comparisons.  If you are comparing frame
+A to frame B the following cases arise:
+
+   1) When frame A pushes frame B (or a frame that ends up pushing
+      B) A is Older than B.
+
+   2) When frame A pushed frame B (or if frameA is on the stack
+      but B is not) A is Younger than B.
+
+   3) When frame A and frame B have the same StackID, they are
+      Equal.
+
+   4) When frame A and frame B have the same immediate parent
+      frame, but are not equal, the comparison yields SameParent.
+
+   5) If the two frames are on 
diff erent threads or processes the
+      comparison is Invalid.
+
+   6) If for some reason we can't figure out what went on, we
+      return Unknown.
+
+.. py:data:: eFrameCompareInvalid
+.. py:data:: eFrameCompareUnknown
+.. py:data:: eFrameCompareEqual
+.. py:data:: eFrameCompareSameParent
+.. py:data:: eFrameCompareYounger
+.. py:data:: eFrameCompareOlder
+
+FilePermissions
+---------------
+
+.. py:data:: eFilePermissionsUserRead
+.. py:data:: eFilePermissionsUserWrite
+.. py:data:: eFilePermissionsUserExecute
+.. py:data:: eFilePermissionsGroupRead
+.. py:data:: eFilePermissionsGroupWrite
+.. py:data:: eFilePermissionsGroupExecute
+.. py:data:: eFilePermissionsWorldRead
+.. py:data:: eFilePermissionsWorldWrite
+.. py:data:: eFilePermissionsWorldExecute
+.. py:data:: eFilePermissionsUserRW
+.. py:data:: eFileFilePermissionsUserRX
+.. py:data:: eFilePermissionsUserRWX
+.. py:data:: eFilePermissionsGroupRW
+.. py:data:: eFilePermissionsGroupRX
+.. py:data:: eFilePermissionsGroupRWX
+.. py:data:: eFilePermissionsWorldRW
+.. py:data:: eFilePermissionsWorldRX
+.. py:data:: eFilePermissionsWorldRWX
+.. py:data:: eFilePermissionsEveryoneR
+.. py:data:: eFilePermissionsEveryoneW
+.. py:data:: eFilePermissionsEveryoneX
+.. py:data:: eFilePermissionsEveryoneRW
+.. py:data:: eFilePermissionsEveryoneRX
+.. py:data:: eFilePermissionsEveryoneRWX
+.. py:data:: eFilePermissionsFileDefault = eFilePermissionsUserRW,
+.. py:data:: eFilePermissionsDirectoryDefault
+
+QueueItem
+---------
+.. py:data:: eQueueItemKindUnknown
+.. py:data:: eQueueItemKindFunction
+.. py:data:: eQueueItemKindBlock
+
+QueueKind
+---------
+
+libdispatch aka Grand Central Dispatch (GCD) queues can be either
+serial (executing on one thread) or concurrent (executing on
+multiple threads).
+
+.. py:data:: eQueueKindUnknown
+.. py:data:: eQueueKindSerial
+.. py:data:: eQueueKindConcurrent
+
+ExpressionEvaluationPhase
+-------------------------
+
+These are the cancellable stages of expression evaluation, passed
+to the expression evaluation callback, so that you can interrupt
+expression evaluation at the various points in its lifecycle.
+
+.. py:data:: eExpressionEvaluationParse
+.. py:data:: eExpressionEvaluationIRGen
+.. py:data:: eExpressionEvaluationExecution
+.. py:data:: eExpressionEvaluationComplete
+
+WatchpointKind
+--------------
+
+Indicates what types of events cause the watchpoint to fire. Used by Native
+-Protocol-related classes.
+
+.. py:data:: eWatchpointKindWrite
+.. py:data:: eWatchpointKindRead
+
+GdbSignal
+---------
+
+.. py:data:: eGdbSignalBadAccess
+.. py:data:: eGdbSignalBadInstruction
+.. py:data:: eGdbSignalArithmetic
+.. py:data:: eGdbSignalEmulation
+.. py:data:: eGdbSignalSoftware
+.. py:data:: eGdbSignalBreakpoint
+
+PathType
+--------
+
+Used with `SBHostOS.GetLLDBPath` to find files that are
+related to LLDB on the current host machine. Most files are
+relative to LLDB or are in known locations.
+
+.. py:data:: ePathTypeLLDBShlibDir
+
+   The directory where the lldb.so (unix) or LLDB mach-o file in
+   LLDB.framework (MacOSX) exists.
+
+.. py:data:: ePathTypeSupportExecutableDir
+
+   Find LLDB support executable directory (debugserver, etc).
+
+.. py:data:: ePathTypeHeaderDir
+
+   Find LLDB header file directory.
+
+.. py:data:: ePathTypePythonDir
+
+   Find Python modules (PYTHONPATH) directory.
+
+.. py:data:: ePathTypeLLDBSystemPlugins
+
+   System plug-ins directory
+
+.. py:data:: ePathTypeLLDBUserPlugins
+
+   User plug-ins directory
+
+.. py:data:: ePathTypeLLDBTempSystemDir
+
+   The LLDB temp directory for this system that will be cleaned up on exit.
+
+.. py:data:: ePathTypeGlobalLLDBTempSystemDir
+
+   The LLDB temp directory for this system, NOT cleaned up on a process
+   exit.
+
+.. py:data:: ePathTypeClangDir
+
+   Find path to Clang builtin headers.
+
+MemberFunctionKind
+------------------
+
+.. py:data:: eMemberFunctionKindUnknown
+.. py:data:: eMemberFunctionKindConstructor
+
+   A function used to create instances.
+
+.. py:data:: eMemberFunctionKindDestructor
+
+   A function used to tear down existing instances.
+
+.. py:data:: eMemberFunctionKindInstanceMethod
+
+   A function that applies to a specific instance.
+
+.. py:data:: eMemberFunctionKindStaticMethod
+
+   A function that applies to a type rather than any instance,
+
+TypeFlags
+---------
+
+.. py:data:: eTypeHasChildren
+.. py:data:: eTypeIsArray
+.. py:data:: eTypeIsBuiltIn
+.. py:data:: eTypeIsCPlusPlus
+.. py:data:: eTypeIsFuncPrototype
+.. py:data:: eTypeIsObjC
+.. py:data:: eTypeIsReference
+.. py:data:: eTypeIsTemplate
+.. py:data:: eTypeIsVector
+.. py:data:: eTypeIsInteger
+.. py:data:: eTypeIsComplex
+.. py:data:: eTypeInstanceIsPointer
+
+CommandFlags
+---------------
+
+.. py:data:: eCommandRequiresTarget
+.. py:data:: eCommandRequiresProcess
+.. py:data:: eCommandRequiresThread
+.. py:data:: eCommandRequiresFrame
+.. py:data:: eCommandRequiresRegContext
+.. py:data:: eCommandTryTargetAPILock
+.. py:data:: eCommandProcessMustBeLaunched
+.. py:data:: eCommandProcessMustBePaused
+.. py:data:: eCommandProcessMustBeTraced
+
+TypeSummary
+-----------
+
+Whether a summary should cap how much data it returns to users or not.
+
+.. py:data:: eTypeSummaryCapped
+.. py:data:: eTypeSummaryUncapped
+
+CommandInterpreterResult
+------------------------
+
+The result from a command interpreter run.
+
+.. py:data:: eCommandInterpreterResultSuccess
+
+   Command interpreter finished successfully.
+
+.. py:data:: eCommandInterpreterResultInferiorCrash
+
+   Stopped because the corresponding option was set and the inferior
+   crashed.
+
+.. py:data:: eCommandInterpreterResultCommandError
+
+   Stopped because the corresponding option was set and a command returned
+   an error.
+
+.. py:data:: eCommandInterpreterResultQuitRequested
+
+   Stopped because quit was requested.


        


More information about the lldb-commits mailing list