diff options
author | Tomas R <tomas.roun8@gmail.com> | 2023-06-11 15:50:34 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-11 15:50:34 (GMT) |
commit | 18d16e93b6d4b7b10c5145890daa92b760fe962a (patch) | |
tree | dec14b77f5706ef22385894eec6fc737ea2f4944 /Doc | |
parent | 845e593c4ec97dd9f73b50536c1e1e7ed10ceecd (diff) | |
download | cpython-18d16e93b6d4b7b10c5145890daa92b760fe962a.zip cpython-18d16e93b6d4b7b10c5145890daa92b760fe962a.tar.gz cpython-18d16e93b6d4b7b10c5145890daa92b760fe962a.tar.bz2 |
gh-102676: Add more convenience properties to `dis.Instruction` (#103969)
Adds start_offset, cache_offset, end_offset, baseopcode,
baseopname, jump_target and oparg to dis.Instruction.
Also slightly improves the disassembly output by allowing
opnames to overflow into the space reserved for opargs.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/dis.rst | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Doc/library/dis.rst b/Doc/library/dis.rst index 9b90f1e..507b829 100644 --- a/Doc/library/dis.rst +++ b/Doc/library/dis.rst @@ -342,10 +342,25 @@ details of bytecode instructions as :class:`Instruction` instances: human readable name for operation + .. data:: baseopcode + + numeric code for the base operation if operation is specialized; + otherwise equal to :data:`opcode` + + + .. data:: baseopname + + human readable name for the base operation if operation is specialized; + otherwise equal to :data:`opname` + + .. data:: arg numeric argument to operation (if any), otherwise ``None`` + .. data:: oparg + + alias for :data:`arg` .. data:: argval @@ -363,6 +378,22 @@ details of bytecode instructions as :class:`Instruction` instances: start index of operation within bytecode sequence + .. data:: start_offset + + start index of operation within bytecode sequence, including prefixed + ``EXTENDED_ARG`` operations if present; otherwise equal to :data:`offset` + + + .. data:: cache_offset + + start index of the cache entries following the operation + + + .. data:: end_offset + + end index of the cache entries following the operation + + .. data:: starts_line line started by this opcode (if any), otherwise ``None`` @@ -373,6 +404,12 @@ details of bytecode instructions as :class:`Instruction` instances: ``True`` if other code jumps to here, otherwise ``False`` + .. data:: jump_target + + bytecode index of the jump target if this is a jump operation, + otherwise ``None`` + + .. data:: positions :class:`dis.Positions` object holding the @@ -384,6 +421,11 @@ details of bytecode instructions as :class:`Instruction` instances: Field ``positions`` is added. + .. versionchanged:: 3.13 + + Added fields ``start_offset``, ``cache_offset``, ``end_offset``, + ``baseopname``, ``baseopcode``, ``jump_target`` and ``oparg``. + .. class:: Positions |