import typing as _typing
import enum as _enum
import abc as _abc
import gdb

_T = _typing.TypeVar('T')
class _getset(_typing.Generic[_T]):
    def __get__(self, instance, owner=None) -> _T: ...
    def __set__(self, instance, value: _T) -> None: ...

class _get(_typing.Generic[_T]):
    def __get__(self, instance, owner=None) -> _T: ...

_buffer = bytes | bytearray | memoryview

class _printoptions(_typing.TypedDict):
    raw: bool
    pretty_arrays: bool
    pretty_structs: bool
    array_indexes: bool
    symbols: bool
    unions: bool
    address: bool
    nibbles: bool
    deref_refs: bool
    actual_objects: bool
    static_members: bool
    max_characters: int
    max_elements: int
    max_depth: int
    repeat_threshold: int
    format: str[1]
    styling: bool
    summary: bool


HOST_CONFIG: str = 'x86_64-pc-linux-gnu'
TARGET_CONFIG: str = 'x86_64-pc-linux-gnu'
VERSION: str = '16.3'

STDOUT: int = 0
STDERR: int = 1
STDLOG: int = 2

NORMAL_FRAME: int = 0
DUMMY_FRAME: int = 1
INLINE_FRAME: int = 2
TAILCALL_FRAME: int = 3
SIGTRAMP_FRAME: int = 4
ARCH_FRAME: int = 5
SENTINEL_FRAME: int = 6
@_enum.global_enum
class _FRAME_TYPE(_enum.IntEnum):
    NORMAL_FRAME: int = NORMAL_FRAME
    DUMMY_FRAME: int = DUMMY_FRAME
    INLINE_FRAME: int = INLINE_FRAME
    TAILCALL_FRAME: int = TAILCALL_FRAME
    SIGTRAMP_FRAME: int = SIGTRAMP_FRAME
    ARCH_FRAME: int = ARCH_FRAME
    SENTINEL_FRAME: int = SENTINEL_FRAME

BP_NONE: int = 0
BP_BREAKPOINT: int = 1
BP_HARDWARE_BREAKPOINT: int = 2
BP_WATCHPOINT: int = 6
BP_HARDWARE_WATCHPOINT: int = 7
BP_READ_WATCHPOINT: int = 8
BP_ACCESS_WATCHPOINT: int = 9
BP_CATCHPOINT: int = 26
@_enum.global_enum
class _BP(_enum.IntEnum):
    BP_NONE: int = BP_NONE
    BP_BREAKPOINT: int = BP_BREAKPOINT
    BP_HARDWARE_BREAKPOINT: int = BP_HARDWARE_BREAKPOINT
    BP_WATCHPOINT: int = BP_WATCHPOINT
    BP_HARDWARE_WATCHPOINT: int = BP_HARDWARE_WATCHPOINT
    BP_READ_WATCHPOINT: int = BP_READ_WATCHPOINT
    BP_ACCESS_WATCHPOINT: int = BP_ACCESS_WATCHPOINT
    BP_CATCHPOINT: int = BP_CATCHPOINT

COMMAND_NONE: int = -1
COMMAND_RUNNING: int = 0
COMMAND_DATA: int = 1
COMMAND_STACK: int = 2
COMMAND_FILES: int = 3
COMMAND_SUPPORT: int = 4
COMMAND_STATUS: int = 5
COMMAND_BREAKPOINTS: int = 6
COMMAND_TRACEPOINTS: int = 7
COMMAND_OBSCURE: int = 10
COMMAND_MAINTENANCE: int = 11
COMMAND_TUI: int = 12
COMMAND_USER: int = 13
@_enum.global_enum
class _COMMAND(_enum.IntEnum):
    COMMAND_NONE: int = COMMAND_NONE
    COMMAND_RUNNING: int = COMMAND_RUNNING
    COMMAND_DATA: int = COMMAND_DATA
    COMMAND_STACK: int = COMMAND_STACK
    COMMAND_FILES: int = COMMAND_FILES
    COMMAND_SUPPORT: int = COMMAND_SUPPORT
    COMMAND_STATUS: int = COMMAND_STATUS
    COMMAND_BREAKPOINTS: int = COMMAND_BREAKPOINTS
    COMMAND_TRACEPOINTS: int = COMMAND_TRACEPOINTS
    COMMAND_OBSCURE: int = COMMAND_OBSCURE
    COMMAND_MAINTENANCE: int = COMMAND_MAINTENANCE
    COMMAND_TUI: int = COMMAND_TUI
    COMMAND_USER: int = COMMAND_USER

COMPLETE_NONE: int = 0
COMPLETE_FILENAME: int = 1
COMPLETE_LOCATION: int = 2
COMPLETE_COMMAND: int = 3
COMPLETE_SYMBOL: int = 4
COMPLETE_EXPRESSION: int = 5
@_enum.global_enum
class _COMPLETE(_enum.IntEnum):
    COMPLETE_NONE: int = COMPLETE_NONE
    COMPLETE_FILENAME: int = COMPLETE_FILENAME
    COMPLETE_LOCATION: int = COMPLETE_LOCATION
    COMPLETE_COMMAND: int = COMPLETE_COMMAND
    COMPLETE_SYMBOL: int = COMPLETE_SYMBOL
    COMPLETE_EXPRESSION: int = COMPLETE_EXPRESSION

FRAME_UNWIND_NO_REASON: int = 0
FRAME_UNWIND_NULL_ID: int = 1
FRAME_UNWIND_OUTERMOST: int = 2
FRAME_UNWIND_UNAVAILABLE: int = 3
FRAME_UNWIND_INNER_ID: int = 4
FRAME_UNWIND_SAME_ID: int = 5
FRAME_UNWIND_NO_SAVED_PC: int = 6
FRAME_UNWIND_MEMORY_ERROR: int = 7
@_enum.global_enum
class _FRAME_UNWIND_REASON(_enum.IntEnum):
    FRAME_UNWIND_NO_REASON: int = FRAME_UNWIND_NO_REASON
    FRAME_UNWIND_NULL_ID: int = FRAME_UNWIND_NULL_ID
    FRAME_UNWIND_OUTERMOST: int = FRAME_UNWIND_OUTERMOST
    FRAME_UNWIND_UNAVAILABLE: int = FRAME_UNWIND_UNAVAILABLE
    FRAME_UNWIND_INNER_ID: int = FRAME_UNWIND_INNER_ID
    FRAME_UNWIND_SAME_ID: int = FRAME_UNWIND_SAME_ID
    FRAME_UNWIND_NO_SAVED_PC: int = FRAME_UNWIND_NO_SAVED_PC
    FRAME_UNWIND_MEMORY_ERROR: int = FRAME_UNWIND_MEMORY_ERROR

PARAM_BOOLEAN: int = 0
PARAM_AUTO_BOOLEAN: int = 1
PARAM_UINTEGER: int = 2
PARAM_INTEGER: int = 3
PARAM_STRING: int = 4
PARAM_STRING_NOESCAPE: int = 5
PARAM_OPTIONAL_FILENAME: int = 6
PARAM_FILENAME: int = 7
PARAM_ZINTEGER: int = 8
PARAM_ZUINTEGER: int = 9
PARAM_ZUINTEGER_UNLIMITED: int = 10
PARAM_ENUM: int = 11
@_enum.global_enum
class _PARAM(_enum.IntEnum):
    PARAM_BOOLEAN: int = PARAM_BOOLEAN
    PARAM_AUTO_BOOLEAN: int = PARAM_AUTO_BOOLEAN
    PARAM_UINTEGER: int = PARAM_UINTEGER
    PARAM_INTEGER: int = PARAM_INTEGER
    PARAM_STRING: int = PARAM_STRING
    PARAM_STRING_NOESCAPE: int = PARAM_STRING_NOESCAPE
    PARAM_OPTIONAL_FILENAME: int = PARAM_OPTIONAL_FILENAME
    PARAM_FILENAME: int = PARAM_FILENAME
    PARAM_ZINTEGER: int = PARAM_ZINTEGER
    PARAM_ZUINTEGER: int = PARAM_ZUINTEGER
    PARAM_ZUINTEGER_UNLIMITED: int = PARAM_ZUINTEGER_UNLIMITED
    PARAM_ENUM: int = PARAM_ENUM

SYMBOL_UNDEF_DOMAIN: int = 0
SYMBOL_VAR_DOMAIN: int = 1
SYMBOL_STRUCT_DOMAIN: int = 2
SYMBOL_MODULE_DOMAIN: int = 3
SYMBOL_LABEL_DOMAIN: int = 4
SYMBOL_COMMON_BLOCK_DOMAIN: int = 5
SYMBOL_TYPE_DOMAIN: int = 6
SYMBOL_FUNCTION_DOMAIN: int = 7
@_enum.global_enum
class _SYMBOL_DOMAIN(_enum.IntEnum):
    SYMBOL_UNDEF_DOMAIN: int = SYMBOL_UNDEF_DOMAIN
    SYMBOL_VAR_DOMAIN: int = SYMBOL_VAR_DOMAIN
    SYMBOL_STRUCT_DOMAIN: int = SYMBOL_STRUCT_DOMAIN
    SYMBOL_MODULE_DOMAIN: int = SYMBOL_MODULE_DOMAIN
    SYMBOL_LABEL_DOMAIN: int = SYMBOL_LABEL_DOMAIN
    SYMBOL_COMMON_BLOCK_DOMAIN: int = SYMBOL_COMMON_BLOCK_DOMAIN
    SYMBOL_TYPE_DOMAIN: int = SYMBOL_TYPE_DOMAIN
    SYMBOL_FUNCTION_DOMAIN: int = SYMBOL_FUNCTION_DOMAIN

SEARCH_UNDEF_DOMAIN: int = 32769
SEARCH_VAR_DOMAIN: int = 32770
SEARCH_STRUCT_DOMAIN: int = 32772
SEARCH_MODULE_DOMAIN: int = 32776
SEARCH_LABEL_DOMAIN: int = 32784
SEARCH_COMMON_BLOCK_DOMAIN: int = 32800
SEARCH_TYPE_DOMAIN: int = 32832
SEARCH_FUNCTION_DOMAIN: int = 32896
@_enum.global_enum
class _SEARCH_DOMAIN(_enum.IntEnum):
    SEARCH_UNDEF_DOMAIN: int = SEARCH_UNDEF_DOMAIN
    SEARCH_VAR_DOMAIN: int = SEARCH_VAR_DOMAIN
    SEARCH_STRUCT_DOMAIN: int = SEARCH_STRUCT_DOMAIN
    SEARCH_MODULE_DOMAIN: int = SEARCH_MODULE_DOMAIN
    SEARCH_LABEL_DOMAIN: int = SEARCH_LABEL_DOMAIN
    SEARCH_COMMON_BLOCK_DOMAIN: int = SEARCH_COMMON_BLOCK_DOMAIN
    SEARCH_TYPE_DOMAIN: int = SEARCH_TYPE_DOMAIN
    SEARCH_FUNCTION_DOMAIN: int = SEARCH_FUNCTION_DOMAIN

SYMBOL_LOC_UNDEF: int = 0
SYMBOL_LOC_CONST: int = 1
SYMBOL_LOC_STATIC: int = 2
SYMBOL_LOC_REGISTER: int = 3
SYMBOL_LOC_ARG: int = 4
SYMBOL_LOC_REF_ARG: int = 5
SYMBOL_LOC_REGPARM_ADDR: int = 6
SYMBOL_LOC_LOCAL: int = 7
SYMBOL_LOC_TYPEDEF: int = 8
SYMBOL_LOC_LABEL: int = 9
SYMBOL_LOC_BLOCK: int = 10
SYMBOL_LOC_CONST_BYTES: int = 11
SYMBOL_LOC_UNRESOLVED: int = 12
SYMBOL_LOC_OPTIMIZED_OUT: int = 13
SYMBOL_LOC_COMPUTED: int = 14
SYMBOL_LOC_COMMON_BLOCK: int = 15
@_enum.global_enum
class _SYMBOL_LOC(_enum.IntEnum):
    SYMBOL_LOC_UNDEF: int = SYMBOL_LOC_UNDEF
    SYMBOL_LOC_CONST: int = SYMBOL_LOC_CONST
    SYMBOL_LOC_STATIC: int = SYMBOL_LOC_STATIC
    SYMBOL_LOC_REGISTER: int = SYMBOL_LOC_REGISTER
    SYMBOL_LOC_ARG: int = SYMBOL_LOC_ARG
    SYMBOL_LOC_REF_ARG: int = SYMBOL_LOC_REF_ARG
    SYMBOL_LOC_REGPARM_ADDR: int = SYMBOL_LOC_REGPARM_ADDR
    SYMBOL_LOC_LOCAL: int = SYMBOL_LOC_LOCAL
    SYMBOL_LOC_TYPEDEF: int = SYMBOL_LOC_TYPEDEF
    SYMBOL_LOC_LABEL: int = SYMBOL_LOC_LABEL
    SYMBOL_LOC_BLOCK: int = SYMBOL_LOC_BLOCK
    SYMBOL_LOC_CONST_BYTES: int = SYMBOL_LOC_CONST_BYTES
    SYMBOL_LOC_UNRESOLVED: int = SYMBOL_LOC_UNRESOLVED
    SYMBOL_LOC_OPTIMIZED_OUT: int = SYMBOL_LOC_OPTIMIZED_OUT
    SYMBOL_LOC_COMPUTED: int = SYMBOL_LOC_COMPUTED
    SYMBOL_LOC_COMMON_BLOCK: int = SYMBOL_LOC_COMMON_BLOCK

TYPE_CODE_BITSTRING: int = -1
TYPE_CODE_PTR: int = 1
TYPE_CODE_ARRAY: int = 2
TYPE_CODE_STRUCT: int = 3
TYPE_CODE_UNION: int = 4
TYPE_CODE_ENUM: int = 5
TYPE_CODE_FLAGS: int = 6
TYPE_CODE_FUNC: int = 7
TYPE_CODE_INT: int = 8
TYPE_CODE_FLT: int = 9
TYPE_CODE_VOID: int = 10
TYPE_CODE_SET: int = 11
TYPE_CODE_RANGE: int = 12
TYPE_CODE_STRING: int = 13
TYPE_CODE_ERROR: int = 14
TYPE_CODE_METHOD: int = 15
TYPE_CODE_METHODPTR: int = 16
TYPE_CODE_MEMBERPTR: int = 17
TYPE_CODE_REF: int = 18
TYPE_CODE_RVALUE_REF: int = 19
TYPE_CODE_CHAR: int = 20
TYPE_CODE_BOOL: int = 21
TYPE_CODE_COMPLEX: int = 22
TYPE_CODE_TYPEDEF: int = 23
TYPE_CODE_NAMESPACE: int = 24
TYPE_CODE_DECFLOAT: int = 25
TYPE_CODE_MODULE: int = 26
TYPE_CODE_INTERNAL_FUNCTION: int = 27
TYPE_CODE_XMETHOD: int = 28
TYPE_CODE_FIXED_POINT: int = 29
TYPE_CODE_NAMELIST: int = 30
@_enum.global_enum
class _TYPE_CODE(_enum.IntEnum):
    TYPE_CODE_BITSTRING: int = TYPE_CODE_BITSTRING
    TYPE_CODE_PTR: int = TYPE_CODE_PTR
    TYPE_CODE_ARRAY: int = TYPE_CODE_ARRAY
    TYPE_CODE_STRUCT: int = TYPE_CODE_STRUCT
    TYPE_CODE_UNION: int = TYPE_CODE_UNION
    TYPE_CODE_ENUM: int = TYPE_CODE_ENUM
    TYPE_CODE_FLAGS: int = TYPE_CODE_FLAGS
    TYPE_CODE_FUNC: int = TYPE_CODE_FUNC
    TYPE_CODE_INT: int = TYPE_CODE_INT
    TYPE_CODE_FLT: int = TYPE_CODE_FLT
    TYPE_CODE_VOID: int = TYPE_CODE_VOID
    TYPE_CODE_SET: int = TYPE_CODE_SET
    TYPE_CODE_RANGE: int = TYPE_CODE_RANGE
    TYPE_CODE_STRING: int = TYPE_CODE_STRING
    TYPE_CODE_ERROR: int = TYPE_CODE_ERROR
    TYPE_CODE_METHOD: int = TYPE_CODE_METHOD
    TYPE_CODE_METHODPTR: int = TYPE_CODE_METHODPTR
    TYPE_CODE_MEMBERPTR: int = TYPE_CODE_MEMBERPTR
    TYPE_CODE_REF: int = TYPE_CODE_REF
    TYPE_CODE_RVALUE_REF: int = TYPE_CODE_RVALUE_REF
    TYPE_CODE_CHAR: int = TYPE_CODE_CHAR
    TYPE_CODE_BOOL: int = TYPE_CODE_BOOL
    TYPE_CODE_COMPLEX: int = TYPE_CODE_COMPLEX
    TYPE_CODE_TYPEDEF: int = TYPE_CODE_TYPEDEF
    TYPE_CODE_NAMESPACE: int = TYPE_CODE_NAMESPACE
    TYPE_CODE_DECFLOAT: int = TYPE_CODE_DECFLOAT
    TYPE_CODE_MODULE: int = TYPE_CODE_MODULE
    TYPE_CODE_INTERNAL_FUNCTION: int = TYPE_CODE_INTERNAL_FUNCTION
    TYPE_CODE_XMETHOD: int = TYPE_CODE_XMETHOD
    TYPE_CODE_FIXED_POINT: int = TYPE_CODE_FIXED_POINT
    TYPE_CODE_NAMELIST: int = TYPE_CODE_NAMELIST

class Architecture:
    def __init__(self, *args, **kwargs) -> None: ...
    def disassemble(self, *args, **kwargs) -> _typing.Any: ...
    def integer_type(self, *args, **kwargs) -> _typing.Any: ...
    def name(self, *args, **kwargs) -> _typing.Any: ...
    def register_groups(self, *args, **kwargs) -> _typing.Any: ...
    def registers(self, *args, **kwargs) -> _typing.Any: ...

class Block:
    end: _typing.ClassVar[_getset] = ...
    function: _typing.ClassVar[_getset] = ...
    global_block: _typing.ClassVar[_getset] = ...
    is_global: _typing.ClassVar[_getset[bool]] = ...
    is_static: _typing.ClassVar[_getset[bool]] = ...
    start: _typing.ClassVar[_getset] = ...
    static_block: _typing.ClassVar[_getset] = ...
    superblock: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __getitem__(self, index) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __hash__(self) -> _typing.Any: ...
    def __iter__(self) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class BlockIterator:
    def __init__(self, *args, **kwargs) -> None: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def __iter__(self) -> _typing.Any: ...
    def __next__(self) -> _typing.Any: ...

class Breakpoint:
    commands: _typing.ClassVar[_getset] = ...
    condition: _typing.ClassVar[_getset] = ...
    enabled: _typing.ClassVar[_getset] = ...
    expression: _typing.ClassVar[_getset] = ...
    hit_count: _typing.ClassVar[_getset] = ...
    ignore_count: _typing.ClassVar[_getset] = ...
    inferior: _typing.ClassVar[_getset] = ...
    location: _typing.ClassVar[_getset] = ...
    locations: _typing.ClassVar[_getset] = ...
    number: _typing.ClassVar[_getset] = ...
    pending: _typing.ClassVar[_getset] = ...
    silent: _typing.ClassVar[_getset] = ...
    task: _typing.ClassVar[_getset] = ...
    temporary: _typing.ClassVar[_getset] = ...
    thread: _typing.ClassVar[_getset] = ...
    type: _typing.ClassVar[_getset] = ...
    visible: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def delete(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def __delattr__(self, name) -> _typing.Any: ...
    def __setattr__(self, name, value) -> _typing.Any: ...

class BreakpointEvent(StopEvent): ...

class BreakpointLocation:
    address: _typing.ClassVar[_getset] = ...
    enabled: _typing.ClassVar[_getset] = ...
    fullname: _typing.ClassVar[_getset[str]] = ...
    function: _typing.ClassVar[_getset] = ...
    owner: _typing.ClassVar[_getset] = ...
    source: _typing.ClassVar[_getset] = ...
    thread_groups: _typing.ClassVar[_getset] = ...

class BtraceObjectList:
    __hash__: _typing.ClassVar[None] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def count(self, *args, **kwargs) -> _typing.Any: ...
    def index(self, *args, **kwargs) -> _typing.Any: ...
    def __contains__(self, other) -> _typing.Any: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __getitem__(self, index) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __len__(self) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class ClearObjFilesEvent(Event): ...

class Command(_abc.abc):
    def __init__(self, name:str, command_class:_COMMAND, completer_class:_COMPLETE=COMPLETE_NONE, prefix:bool=False) -> None: ...
    def dont_repeat(self, *args, **kwargs) -> _typing.Any: ...
    @_abc.abstractmethod
    def invoke(self, argument:str, from_tty:bool) -> None: ...
    def complete(self, text:str, word:str) -> _COMPLETE: ...

class ConnectionEvent(Event): ...

class ContinueEvent(ThreadEvent): ...

class Event: ...

class EventRegistry:
    def connect(self, *args, **kwargs) -> _typing.Any: ...
    def disconnect(self, *args, **kwargs) -> _typing.Any: ...

class ExecutableChangedEvent(Event): ...

class ExitedEvent(Event): ...

class Field:
    bitpos: int
    enumval: int
    name: str|None
    artificial: bool
    is_base_class: bool
    bitsize: int
    type: Type|None
    parent_type: Type

class FinishBreakpoint(Breakpoint):
    return_value: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...

class Frame:
    __hash__: _typing.ClassVar[None] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def architecture(self, *args, **kwargs) -> Architecture: ...
    def block(self, *args, **kwargs) -> _typing.Any: ...
    def find_sal(self, *args, **kwargs) -> _typing.Any: ...
    def function(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def language(self, *args, **kwargs) -> _typing.Any: ...
    def level(self, *args, **kwargs) -> _typing.Any: ...
    def name(self, *args, **kwargs) -> _typing.Any: ...
    def newer(self, *args, **kwargs) -> Frame: ...
    def older(self, *args, **kwargs) -> Frame: ...
    def pc(self, *args, **kwargs) -> _typing.Any: ...
    def read_register(self, register_name) -> Value: ...
    def read_var(self, *args, **kwargs) -> _typing.Any: ...
    def select(self, *args, **kwargs) -> _typing.Any: ...
    def static_link(self, *args, **kwargs) -> _typing.Any: ...
    def type(self, *args, **kwargs) -> _typing.Any: ...
    def unwind_stop_reason(self, *args, **kwargs) -> _typing.Any: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class FreeObjFileEvent(Event): ...

class FreeProgspaceEvent(Event): ...

class Function:
    def __init__(self, *args, **kwargs) -> None: ...

class GdbError(Exception): ...

class GdbExitingEvent(Event): ...

class Inferior:
    arguments: _typing.ClassVar[_getset] = ...
    connection: _typing.ClassVar[_getset] = ...
    connection_num: _typing.ClassVar[_getset] = ...
    main_name: _typing.ClassVar[_getset[str]] = ...
    num: _typing.ClassVar[_getset] = ...
    pid: _typing.ClassVar[_getset] = ...
    progspace: _typing.ClassVar[_getset] = ...
    was_attached: _typing.ClassVar[_getset] = ...
    def architecture(self) -> Architecture: ...
    def clear_env(self) -> None: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def read_memory(self, address, length) -> _buffer: ...
    def search_memory(self, address, length, pattern) -> int: ...
    def set_env(self, name, value) -> None: ...
    def thread_from_handle(self, *args, **kwargs) -> _typing.Any: ...
    def thread_from_thread_handle(self, *args, **kwargs) -> _typing.Any: ...
    def threads(self, *args, **kwargs) -> _typing.Any: ...
    def unset_env(self, name) -> None: ...
    def write_memory(self, *args, **kwargs) -> _typing.Any: ...

class InferiorCallPostEvent(Event): ...

class InferiorCallPreEvent(Event): ...

class InferiorDeletedEvent(Event): ...

class InferiorThread:
    details: _typing.ClassVar[_getset] = ...
    global_num: _typing.ClassVar[_getset] = ...
    inferior: _typing.ClassVar[_getset] = ...
    name: _typing.ClassVar[_getset[str]] = ...
    num: _typing.ClassVar[_getset] = ...
    ptid: _typing.ClassVar[_getset] = ...
    ptid_string: _typing.ClassVar[_getset] = ...
    def handle(self) -> handle: ...
    def is_exited(self) -> bool: ...
    def is_running(self) -> bool: ...
    def is_stopped(self) -> bool: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def switch(self) -> _typing.Any: ...

class Instruction:
    data: _typing.ClassVar[_getset] = ...
    decoded: _typing.ClassVar[_getset] = ...
    pc: _typing.ClassVar[_getset] = ...
    size: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...

class LazyString:
    address: _typing.ClassVar[_getset] = ...
    encoding: _typing.ClassVar[_getset] = ...
    length: _typing.ClassVar[_getset] = ...
    type: _typing.ClassVar[_getset] = ...
    def value(self, *args, **kwargs) -> _typing.Any: ...

class LineTable:
    def has_line(self, lineno) -> bool: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def line(self, lineno) -> tuple: ...
    def source_lines(self) -> list: ...
    def __iter__(self) -> _typing.Any: ...

class LineTableEntry:
    line: _typing.ClassVar[_getset] = ...
    pc: _typing.ClassVar[_getset] = ...

class LineTableIterator:
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def __iter__(self) -> _typing.Any: ...
    def __next__(self) -> _typing.Any: ...

class MICommand:
    installed: _typing.ClassVar[_getset[bool]] = ...
    name: _typing.ClassVar[_getset[str]] = ...
    def __init__(self, name:str) -> None: ...
    def invoke(self, arguments:list[str]) -> dict[str,_typing.Any]|None: ...

class Membuf:
    def __init__(self, *args, **kwargs) -> None: ...

class MemoryChangedEvent(Event): ...

class MemoryError(error): ...

class NewInferiorEvent(Event): ...

class NewObjFileEvent(Event): ...

class NewProgspaceEvent(Event): ...

class NewThreadEvent(ThreadEvent): ...

class Objfile:
    build_id: _typing.ClassVar[_getset] = ...
    filename: _typing.ClassVar[_getset[str]] = ...
    frame_filters: _typing.ClassVar[_getset] = ...
    frame_unwinders: _typing.ClassVar[_getset] = ...
    is_file: _typing.ClassVar[_getset[bool]] = ...
    owner: _typing.ClassVar[_getset] = ...
    pretty_printers: _typing.ClassVar[_getset[list[ValuePrinter]]] = ...
    progspace: _typing.ClassVar[_getset] = ...
    type_printers: _typing.ClassVar[_getset[list[gdb.types.TypePrinter]]] = ...
    username: _typing.ClassVar[_getset[str]] = ...
    xmethods: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def add_separate_debug_file(self, file_name) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def lookup_global_symbol(self, *args, **kwargs) -> _typing.Any: ...
    def lookup_static_symbol(self, *args, **kwargs) -> _typing.Any: ...

class Parameter:
    def __init__(self, *args, **kwargs) -> None: ...
    def __delattr__(self, name) -> _typing.Any: ...
    def __setattr__(self, name, value) -> _typing.Any: ...

class PendingFrame:
    def architecture(self) -> Architecture: ...
    def block(self, *args, **kwargs) -> _typing.Any: ...
    def create_unwind_info(self, FRAME_ID) -> UnwindInfo: ...
    def find_sal(self, *args, **kwargs) -> _typing.Any: ...
    def function(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def language(self, *args, **kwargs) -> _typing.Any: ...
    def level(self, *args, **kwargs) -> _typing.Any: ...
    def name(self, *args, **kwargs) -> _typing.Any: ...
    def pc(self, *args, **kwargs) -> _typing.Any: ...
    def read_register(self, REG) -> Value: ...

class Progspace:
    executable_filename: _typing.ClassVar[_getset[str]] = ...
    filename: _typing.ClassVar[_getset[str]] = ...
    frame_filters: _typing.ClassVar[_getset] = ...
    frame_unwinders: _typing.ClassVar[_getset] = ...
    missing_file_handlers: _typing.ClassVar[_getset] = ...
    pretty_printers: _typing.ClassVar[_getset] = ...
    symbol_file: _typing.ClassVar[_getset] = ...
    type_printers: _typing.ClassVar[_getset] = ...
    xmethods: _typing.ClassVar[_getset] = ...
    def block_for_pc(self, *args, **kwargs) -> _typing.Any: ...
    def find_pc_line(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def objfile_for_address(self, int) -> Objfile: ...
    def objfiles(self, *args, **kwargs) -> _typing.Any: ...
    def solib_name(self, *args, **kwargs) -> _typing.Any: ...

class Record:
    begin: _typing.ClassVar[_getset] = ...
    end: _typing.ClassVar[_getset] = ...
    format: _typing.ClassVar[_getset] = ...
    function_call_history: _typing.ClassVar[_getset] = ...
    instruction_history: _typing.ClassVar[_getset] = ...
    method: _typing.ClassVar[_getset] = ...
    replay_position: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def clear(self, *args, **kwargs) -> _typing.Any: ...
    def goto(self, *args, **kwargs) -> _typing.Any: ...

class RecordAuxiliary:
    data: _typing.ClassVar[_getset] = ...
    number: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __hash__(self) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class RecordFunctionSegment:
    instructions: _typing.ClassVar[_getset] = ...
    level: _typing.ClassVar[_getset] = ...
    next: _typing.ClassVar[_getset] = ...
    number: _typing.ClassVar[_getset] = ...
    prev: _typing.ClassVar[_getset] = ...
    symbol: _typing.ClassVar[_getset] = ...
    up: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __hash__(self) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class RecordGap:
    number: _typing.ClassVar[_getset] = ...
    reason_code: _typing.ClassVar[_getset] = ...
    reason_string: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...

class RecordInstruction(Instruction):
    data: _typing.ClassVar[_getset] = ...
    decoded: _typing.ClassVar[_getset] = ...
    is_speculative: _typing.ClassVar[_getset[bool]] = ...
    number: _typing.ClassVar[_getset] = ...
    pc: _typing.ClassVar[_getset] = ...
    sal: _typing.ClassVar[_getset] = ...
    size: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __hash__(self) -> _typing.Any: ...
    def __le__(self, other) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class RegisterChangedEvent(Event): ...

class RegisterDescriptor:
    name: _typing.ClassVar[_getset[str]] = ...
    def __init__(self, *args, **kwargs) -> None: ...

class RegisterDescriptorIterator:
    def __init__(self, *args, **kwargs) -> None: ...
    def find(self, *args, **kwargs) -> _typing.Any: ...
    def __iter__(self) -> _typing.Any: ...
    def __next__(self) -> _typing.Any: ...

class RegisterGroup:
    name: _typing.ClassVar[_getset[str]] = ...
    def __init__(self, *args, **kwargs) -> None: ...

class RegisterGroupsIterator:
    def __init__(self, *args, **kwargs) -> None: ...
    def __iter__(self) -> _typing.Any: ...
    def __next__(self) -> _typing.Any: ...

class RemoteTargetConnection(TargetConnection):
    def send_packet(self, PACKET) -> bytes: ...

class SignalEvent(StopEvent): ...

class StopEvent(ThreadEvent): ...

class Symbol:
    addr_class: _typing.ClassVar[_getset] = ...
    is_argument: _typing.ClassVar[_getset[bool]] = ...
    is_artificial: _typing.ClassVar[_getset[bool]] = ...
    is_constant: _typing.ClassVar[_getset[bool]] = ...
    is_function: _typing.ClassVar[_getset[bool]] = ...
    is_variable: _typing.ClassVar[_getset[bool]] = ...
    line: _typing.ClassVar[_getset] = ...
    linkage_name: _typing.ClassVar[_getset[str]] = ...
    name: _typing.ClassVar[_getset[str]] = ...
    needs_frame: _typing.ClassVar[_getset] = ...
    print_name: _typing.ClassVar[_getset[str]] = ...
    symtab: _typing.ClassVar[_getset] = ...
    type: _typing.ClassVar[_getset[Type]] = ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def value(self, *args, **kwargs) -> _typing.Any: ...

class Symtab:
    filename: _typing.ClassVar[_getset[str]] = ...
    objfile: _typing.ClassVar[_getset] = ...
    producer: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def fullname(self, *args, **kwargs) -> _typing.Any: ...
    def global_block(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...
    def linetable(self, *args, **kwargs) -> _typing.Any: ...
    def static_block(self, *args, **kwargs) -> _typing.Any: ...

class Symtab_and_line:
    last: _typing.ClassVar[_getset] = ...
    line: _typing.ClassVar[_getset] = ...
    pc: _typing.ClassVar[_getset] = ...
    symtab: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...

class TargetConnection:
    description: _typing.ClassVar[_getset] = ...
    details: _typing.ClassVar[_getset] = ...
    num: _typing.ClassVar[_getset] = ...
    type: _typing.ClassVar[_getset] = ...
    def is_valid(self, *args, **kwargs) -> _typing.Any: ...

class ThreadEvent(Event): ...

class ThreadExitedEvent(Event): ...

class TuiEnabledEvent(Event): ...

class TuiWindow:
    height: _typing.ClassVar[_getset] = ...
    title: _typing.ClassVar[_getset] = ...
    width: _typing.ClassVar[_getset] = ...
    def __init__(self, *args, **kwargs) -> None: ...
    def erase(self, *args, **kwargs) -> _typing.Any: ...
    def is_valid(self) -> bool: ...
    def write(self, *args, **kwargs) -> _typing.Any: ...

class Type:
    alignof: _typing.ClassVar[_getset[int]] = ...
    code: _typing.ClassVar[_getset[_TYPE_CODE]] = ...
    dynamic: _typing.ClassVar[_getset[bool]] = ...
    is_array_like: _typing.ClassVar[_getset[bool]] = ...
    is_scalar: _typing.ClassVar[_getset[bool]] = ...
    is_signed: _typing.ClassVar[_getset[bool]] = ...
    is_string_like: _typing.ClassVar[_getset[bool]] = ...
    name: _typing.ClassVar[_getset[str]] = ...
    objfile: _typing.ClassVar[_getset[Objfile]] = ...
    sizeof: _typing.ClassVar[_getset[int]] = ...
    tag: _typing.ClassVar[_getset[str|None]] = ...
    def array(self, n1:int=..., n2:int=...) -> _typing.Any: ...
    def vector(self, n1:int=..., n2:int=...) -> _typing.Any: ...
    def const(self) -> Type: ...
    def fields(self) -> list[Field]: ...
    def get[T](self, key:str, default:T=None) -> Field|T: ...
    def has_key(self, *args, **kwargs) -> _typing.Any: ...
    def items(self) -> list[Field]: ...
    def iteritems(self, *args, **kwargs) -> _typing.Generator[tuple[str,Field],None,None]: ...
    def iterkeys(self, *args, **kwargs) -> _typing.Generator[str,None,None]: ...
    def itervalues(self, *args, **kwargs) -> _typing.Generator[Field,None,None]: ...
    def keys(self) -> list[str]: ...
    def optimized_out(self) -> Value: ...
    def pointer(self) -> Type: ...
    def range(self) -> tuple[int,int]: ...
    def reference(self) -> Type: ...
    def strip_typedefs(self) -> Type: ...
    def target(self) -> Type: ...
    def template_argument(self, n:int, block=...) -> Value|Type: ...
    def unqualified(self) -> Type: ...
    def values(self) -> list[Field]: ...
    def volatile(self) -> Type: ...
    def __bool__(self) -> _typing.Any: ...
    def __contains__(self, other) -> _typing.Any: ...
    def __eq__(self, other) -> _typing.Any: ...
    def __ge__(self, other) -> _typing.Any: ...
    def __getitem__(self, index) -> _typing.Any: ...
    def __gt__(self, other) -> _typing.Any: ...
    def __iter__(self) -> _typing.Generator[Field,None,None]: ...
    def __le__(self, other) -> _typing.Any: ...
    def __len__(self) -> _typing.Any: ...
    def __lt__(self, other) -> _typing.Any: ...
    def __ne__(self, other) -> _typing.Any: ...

class TypeIterator:
    def __iter__(self) -> _typing.Any: ...
    def __next__(self) -> _typing.Any: ...

class UnwindInfo:
    def add_saved_register(self, REG, VALUE) -> None: ...

class Value:
    address: _typing.ClassVar[_get[Value]] = ...
    bytes: _typing.ClassVar[_get[bytes]] = ...
    dynamic_type: _typing.ClassVar[_getset[Value|Type]] = ...
    is_lazy: _typing.ClassVar[_get[bool]] = ...
    is_optimized_out: _typing.ClassVar[_get[bool]] = ...
    type: _typing.ClassVar[_getset[Type]] = ...
    def __init__(self, val:Value, type:Type) -> None: ...
    def assign(self, val) -> None: ...
    def cast(self, type:Type) -> Value: ...
    def const_value(self) -> Value: ...
    def dereference(self) -> Value: ...
    def dynamic_cast(self, type:Type) -> Value: ...
    def fetch_lazy(self) -> Value: ...
    def format_string(self, **kwargs:_typing.Unpack[_printoptions]) -> _typing.Any: ...
    def lazy_string(self, encoding, length) -> LazyString: ...
    def reference_value(self, *args, **kwargs) -> Value: ...
    def referenced_value(self, *args, **kwargs) -> Value: ...
    def reinterpret_cast(self, type:Type) -> Value: ...
    def rvalue_reference_value(self, *args, **kwargs) -> _typing.Any: ...
    def string(self, encoding, errors, length) -> str: ...
    def to_array(self) -> Value: ...

    def __add__(self, other) -> Value: ...
    def __and__(self, other) -> Value: ...
    def __invert__(self) -> Value: ...
    def __abs__(self) -> Value: ...
    def __lshift__(self, other) -> Value: ...
    def __mod__(self, other) -> Value: ...
    def __mul__(self, other) -> Value: ...
    def __ne__(self, other) -> Value: ...
    def __neg__(self) -> Value: ...
    def __or__(self, other) -> Value: ...
    def __pos__(self) -> Value: ...
    def __pow__(self, other) -> Value: ...
    def __sub__(self, other) -> Value: ...
    def __truediv__(self, other) -> Value: ...
    def __xor__(self, other) -> Value: ...
    def __radd__(self, other) -> Value: ...
    def __rand__(self, other) -> Value: ...
    def __rlshift__(self, other) -> Value: ...
    def __rmod__(self, other) -> Value: ...
    def __rmul__(self, other) -> Value: ...
    def __ror__(self, other) -> Value: ...
    def __rpow__(self, other) -> Value: ...
    def __rrshift__(self, other) -> Value: ...
    def __rshift__(self, other) -> Value: ...
    def __rsub__(self, other) -> Value: ...
    def __rtruediv__(self, other) -> Value: ...
    def __rxor__(self, other) -> Value: ...

    def __call__(self, *args, **kwargs) -> _typing.Any: ...

    def __getitem__(self, index) -> Value: ...
    def __setitem__(self, index, object) -> None: ...
    def __delitem__(self, other) -> None: ...
    def __len__(self) -> int: ...

    def __bool__(self) -> bool: ...
    def __int__(self) -> int: ...
    def __index__(self) -> int: ...
    def __float__(self) -> float: ...
    
    def __eq__(self, other) -> bool: ...
    def __ge__(self, other) -> bool: ...
    def __le__(self, other) -> bool: ...
    def __lt__(self, other) -> bool: ...
    def __gt__(self, other) -> bool: ...
    def __hash__(self) -> int: ...

class ValuePrinter(_abc.abc):
    def __init__(self, *args, **kwargs) -> None: ...
    def children(self) -> _typing.Generator[tuple[_typing.Any,_typing.Any],None,None]: ...
    def display_hint(self) -> _typing.Literal['array','map','string',None]: ...
    def to_string(self) -> str|Value: ...
    def num_children(self) -> int: ...
    def child(self, n:int) -> str|Value: ...

class error(RuntimeError): ...

def add_history(value:_typing.Any) -> None: ...
def architecture_names() -> list[str]: ...
def breakpoints() -> _typing.Sequence[Breakpoint]: ...
def connections() -> list[TargetConnection]: ...
def convenience_variable(name:str) -> Value: ...
def current_language() -> str: ...
def current_objfile(*args, **kwargs) -> Objfile: ...
def current_recording(*args, **kwargs) -> _typing.Any: ...
def decode_line(String) -> tuple: ...
def default_visualizer(value:Value) -> ValuePrinter|None: ...
def execute(command:str, from_tty:bool=False, to_string:bool=False, styling:bool=False) -> str|None: ...
def execute_mi(command:str, *args:str) -> dict[str,_typing.Any]|None: ...
def flush(*args, **kwargs) -> _typing.Any: ...
def format_address(address:_typing.Any, progspace:Progspace=None, architecture:Architecture=None) -> str: ...
def frame_stop_reason_string(*args, **kwargs) -> _typing.Any: ...
def history(number:int) -> Value: ...
def history_count() -> int: ...
def host_charset(*args, **kwargs) -> _typing.Any: ...
def inferiors(*args, **kwargs) -> Inferior: ...
def interrupt(*args, **kwargs) -> _typing.Any: ...
def invalidate_cached_frames(*args, **kwargs) -> _typing.Any: ...
def lookup_global_symbol(*args, **kwargs) -> Symbol: ...
def lookup_objfile(*args, **kwargs) -> Objfile: ...
def lookup_static_symbol(*args, **kwargs) -> Symbol: ...
def lookup_static_symbols(*args, **kwargs) -> Symbol: ...
def lookup_symbol(*args, **kwargs) -> Symbol: ...
def lookup_type(name:str, block:str|None=None) -> Type: ...
def newest_frame(*args, **kwargs) -> Frame: ...
def notify_mi(name, data) -> None: ...
def parameter(parameter:str) -> Parameter: ...
def parse_and_eval(*args, **kwargs) -> Value: ...
def post_event(*args, **kwargs) -> _typing.Any: ...
def print_options() -> _printoptions: ...
def progspaces(*args, **kwargs) -> _typing.Any: ...
def rbreak(regex:str, minsyms:bool=False, throttle:int=None, symtabs:_typing.Iterable[Symtab]=None) -> _typing.Any: ...
def register_window_type(NAME, CONSTRUCTOR) -> None: ...
def selected_frame(*args, **kwargs) -> Frame: ...
def selected_inferior(*args, **kwargs) -> Inferior: ...
def selected_thread(*args, **kwargs) -> InferiorThread: ...
def set_convenience_variable(name:str, value:_typing.Any) -> None: ...
def start_recording(*args, **kwargs) -> _typing.Any: ...
def stop_recording(*args, **kwargs) -> _typing.Any: ...
def string_to_argv(*args, **kwargs) -> _typing.Any: ...
def target_charset(*args, **kwargs) -> _typing.Any: ...
def target_wide_charset(*args, **kwargs) -> _typing.Any: ...
def write(*args, **kwargs) -> _typing.Any: ...
