Python Breakpoint
Introduction
In Python 3.7, a brand-new created function called breakpoint() was added. Due to the close relationship between both the executable and the code of a debugging component, debugging Python programming has never been easy. For instance, you must call pdb.set trace() in your application code when you're using the pdb debugger. You must replace all code related to PDB and add the web pdb.set trace() method if you want to use another debugger, such as web-pdb. Due to this, utilising the Python debugger incurs a significant overhead, making it challenging to debug and modify the Python code. Because of this, Python 3.7 added the breakpoint() function, which enables the creation of loosely connected debugging code.
For programmers, Python debugging has not been without its faults and flaws. The pdb debugger was a widely used debugger.
Debugging is the process of determining why a piece of code is not functioning or is not functioning correctly, and it entails using your investigative abilities. Your code can be debugged in numerous ways. Sometimes locating the issue requires only one approach. At sometimes, it might take a combination of procedures to locate the problems and correct it.
breakpoint()
In order to debug the code and determine what's wrong and how to fix it, you might need to employ a variety of techniques. You may not be able to pinpoint the root of a bug without the use of the breakpoint() technique.
Wherever you want to begin the debugging session, all you have to do is put the code breakpoint() on its own line. You can execute your code using the method's various commands to find the bug. For a listing of all these instructions, enter h and otherwise help.
- The arrival through into pdb session is handled by the sys.breakpointhook() procedure, which is called by the breakpoint() method inside the sys modules.
- The method's signature is as follows: breakpoint(*args, **kwargs)
- If the signatures do not match, sys.breakpointhook() may produce a Type Error and receive the positional and keyword arguments.
Example - 1
# example program for breakpoint
# set values
x = 6
y = 'ball'
z = 'bat'
# print y value
print(y)
breakpoint()
# print z value
print(z)
Output
$python3.7 breakpoint_example.py
Ball
> /Users/bhargav/Documents/Pythonexd/BasicPython/examples/breakpoint_example.py(5)()
-> print(z)
(Pdb) c
bat
$
Example – 2
# program for breakpoint()
x = []
# initialize loop
for i in range(5):
x.append(i)
if i == 3:
# when pdb instance is 3
breakpoint()
# print array x
print(x)
Output
> user/java point/breakpoint.py(3)<module>()
-> for i in range(5):
(Pdb) p x
[0, 1, 2, 3]
(Pdb) n
> user/java point/breakpoint.py(4)<module>()
-> a.append(i)
(Pdb) p x
[0, 1, 2, 3]
(Pdb) n
> user/java point/breakpoint.py(5)<module>()
-> if i == 3:
(Pdb) n
> user/java point/breakpoint.py(3)<module>()
-> for i in range(5):
(Pdb) n
> user/java point/breakpoint.py(4)<module>()
-> x.append(i)
(Pdb) n
> user/java point/breakpoint.py(5)<module>()
-> if i == 3:
(Pdb)
> user/java point/breakpoint.py(3)<module>()
-> for i in range(5):
(Pdb)
> user/java point/breakpoint.py(4)<module>()
-> x.append(i)
(Pdb)
> user/java point/breakpoint.py(5)<module>()
-> if i == 3:
(Pdb)
> user/java point/breakpoint.py(3)<module>()
-> for i in range(5):
(Pdb)
> user/java point/breakpoint.py(8)<module>()
-> print(x)
(Pdb)
[0, 1, 2, 3, 4]
--Return--
Environment Variable for Python Breakpoint
The environment variable PYTHONBREAKPOINT is used by the sys.pythonbreakpointhook() function. If such a parameter is set to 0 and disabled, that removes the debugger, breakpoint() does not use the pdb debugger. As just a consequence, that use this default settings, we can change between debugger settings. Therefore, while running the Python programme, simply unset this environment variable if the code contains breakpoints but you do not wish to enter debug mode.
Output – 1
Bat
Ball
Output – 2
[0, 1, 2, 3, 4]
Different Debugging Session
In addition to pdb, other third-party debuggers can be used to debug using the PYTHONBREAKPOINT environment variable.
The variable can be used to set the name of a callable that initiates a debugging session with a third-party programme, like web-pdb or pudb. Because we can start changing the debugger modules without changing any code, this is really useful.
By entering pip install pudb, you can utilise these if you would like to. install web -pdb with pip. The sample below uses the breakpoint() API to integrate with both a pudb debugging session.