Your IP : 13.59.69.109
�
c��f�� � �f � d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZ G d� de� � Zg d�Zd� Zd� Z G d � d
e� � Z G d� de� � Z G d
� de� � ZdZ G d� dej ej � � Ze �Fg d�Z e D ].Z!e e"ede!z � � j �# � � dz z
Z �/e ej$ j z
Z [ [!d#d�Z%d#d�Z&d� Z'd� Z(dd�d�Z)d$d�Z*d� Z+dZ,d� Z-d� Z.d Z/d!� Z0e1d"k rddl2Z2 e2j0 � � dS dS )%a�
The Python Debugger Pdb
=======================
To use the debugger in its simplest form:
>>> import pdb
>>> pdb.run('<a statement>')
The debugger's prompt is '(Pdb) '. This will stop in the first
function call in <a statement>.
Alternatively, if a statement terminated with an unhandled exception,
you can use pdb's post-mortem facility to inspect the contents of the
traceback:
>>> <a statement>
<exception traceback>
>>> import pdb
>>> pdb.pm()
The commands recognized by the debugger are listed in the next
section. Most can be abbreviated as indicated; e.g., h(elp) means
that 'help' can be typed as 'h' or 'help' (but not as 'he' or 'hel',
nor as 'H' or 'Help' or 'HELP'). Optional arguments are enclosed in
square brackets. Alternatives in the command syntax are separated
by a vertical bar (|).
A blank line repeats the previous command literally, except for
'list', where it lists the next 11 lines.
Commands that the debugger doesn't recognize are assumed to be Python
statements and are executed in the context of the program being
debugged. Python statements can also be prefixed with an exclamation
point ('!'). This is a powerful way to inspect the program being
debugged; it is even possible to change variables or call functions.
When an exception occurs in such a statement, the exception name is
printed but the debugger's state is not changed.
The debugger supports aliases, which can save typing. And aliases can
have parameters (see the alias help entry) which allows one a certain
level of adaptability to the context under examination.
Multiple commands may be entered on a single line, separated by the
pair ';;'. No intelligence is applied to separating the commands; the
input is split at the first ';;', even if it is in the middle of a
quoted string.
If a file ".pdbrc" exists in your home directory or in the current
directory, it is read in and executed as if it had been typed at the
debugger prompt. This is particularly useful for aliases. If both
files exist, the one in the home directory is read first and aliases
defined there can be overridden by the local file. This behavior can be
disabled by passing the "readrc=False" argument to the Pdb constructor.
Aside from aliases, the debugger is not directly programmable; but it
is implemented as a class from which you can derive your own debugger
class, which you can make as fancy as you like.
Debugger commands
=================
� N)�Unionc � � e Zd ZdZdS )�RestartzBCauses a debugger to be restarted for the debugged python program.N)�__name__�
__module__�__qualname__�__doc__� � �*/opt/alt/python311/lib64/python3.11/pdb.pyr r Z s � � � � � �L�L��Dr r ) �run�pm�Pdb�runeval�runctx�runcall� set_trace�post_mortem�helpc �Z � t j dt j | � � z � � } t j |� � }n# t
$ r Y d S w xY w|5 t
|d�� � D ]-\ }}|� |� � r| ||fc cd d d � � S �. d d d � � n# 1 swxY w Y d S )Nzdef\s+%s\s*[(]� )�start)�re�compile�escape�tokenize�open�OSError� enumerate�match)�funcname�filename�cre�fp�lineno�lines r �
find_functionr'