mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-07 12:44:28 +08:00
gdb-stubs fixes (#9439)
* fix: Union subprinters with `None` Seea4418a9c6f/gdb/python/lib/gdb/printing.py (L52-L55)* fix: Allow callables as argument to `printer` Seea4418a9c6f/gdb/python/lib/gdb/printing.py (L77)and the description of "function / old way" in the body of `register_pretty_printer`. The new union's signature is equivalent to `gdb.printing.PrettyPrinter(...).__call__`. * fix: make `gdb.Block` iterable over `gdb.Symbol` See https://sourceware.org/gdb/onlinedocs/gdb/Blocks-In-Python.html#Blocks-In-Python: > A gdb.Block is iterable. The iterator returns the symbols (see [Symbols In Python](https://sourceware.org/gdb/onlinedocs/gdb/Symbols-In-Python.html#Symbols-In-Python)) local to the block. Implementation of `gdb.BlockIterator` is given in https://github.com/bminor/binutils-gdb/blob/gdb-12-branch/gdb/python/py-block.c. As with many of the other classes, `BlockIterator` is actually imported from the built-in `_gdb` module (a4418a9c6f/gdb/python/lib/gdb/__init__.py (L28)). Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
This commit is contained in:
@@ -492,6 +492,12 @@ class Block:
|
||||
is_static: bool
|
||||
|
||||
def is_valid(self) -> bool: ...
|
||||
def __iter__(self) -> BlockIterator: ...
|
||||
|
||||
class BlockIterator:
|
||||
def is_valid(self) -> bool: ...
|
||||
def __iter__(self: _typeshed.Self) -> _typeshed.Self: ...
|
||||
def __next__(self) -> Symbol: ...
|
||||
|
||||
# Symbols
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from collections.abc import Iterable
|
||||
from collections.abc import Callable, Iterable
|
||||
|
||||
import gdb
|
||||
from gdb import _PrettyPrinterLookupFunction
|
||||
@@ -6,7 +6,7 @@ from gdb import _PrettyPrinterLookupFunction
|
||||
class PrettyPrinter:
|
||||
|
||||
name: str
|
||||
subprinters: list[SubPrettyPrinter]
|
||||
subprinters: list[SubPrettyPrinter] | None
|
||||
enabled: bool
|
||||
|
||||
def __init__(self, name: str, subprinters: Iterable[SubPrettyPrinter] | None = ...) -> None: ...
|
||||
@@ -26,4 +26,8 @@ class RegexpCollectionPrettyPrinter(PrettyPrinter):
|
||||
class FlagEnumerationPrinter(PrettyPrinter):
|
||||
def __init__(self, enum_type: str) -> None: ...
|
||||
|
||||
def register_pretty_printer(obj: gdb.Objfile | gdb.Progspace | None, printer: PrettyPrinter, replace: bool = ...) -> None: ...
|
||||
def register_pretty_printer(
|
||||
obj: gdb.Objfile | gdb.Progspace | None,
|
||||
printer: PrettyPrinter | Callable[[gdb.Value], gdb._PrettyPrinter | None],
|
||||
replace: bool = ...,
|
||||
) -> None: ...
|
||||
|
||||
Reference in New Issue
Block a user