Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
8e84c656
Commit
8e84c656
authored
Mar 13, 2007
by
Georg Brandl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch #1393667: pdb now has a "run" command which restarts the debugged
Python program, optionally with different arguments.
parent
c3a64319
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
49 additions
and
3 deletions
+49
-3
Doc/lib/libpdb.tex
Doc/lib/libpdb.tex
+8
-0
Lib/pdb.doc
Lib/pdb.doc
+6
-0
Lib/pdb.py
Lib/pdb.py
+32
-3
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Doc/lib/libpdb.tex
View file @
8e84c656
...
...
@@ -378,6 +378,14 @@ command with a \samp{global} command on the same line, e.g.:
(Pdb)
\end{verbatim}
\item
[run \optional{\var{args} ...}]
Restart the debugged python program. If an argument is supplied, it is
splitted with "shlex" and the result is used as the new sys.argv.
History, breakpoints, actions and debugger options are preserved.
"restart" is an alias for "run".
\versionadded
{
2.6
}
\item
[q(uit)]
Quit from the debugger.
...
...
Lib/pdb.doc
View file @
8e84c656
...
...
@@ -131,6 +131,12 @@ n(ext)
r(eturn)
Continue execution until the current function returns.
run [args...]
Restart the debugged python program. If a string is supplied it is
splitted with "shlex", and the result is used as the new sys.argv.
History, breakpoints, actions and debugger options are preserved.
"restart" is an alias for "run".
c(ont(inue))
Continue execution, only stop when a breakpoint is encountered.
...
...
Lib/pdb.py
View file @
8e84c656
...
...
@@ -13,6 +13,12 @@ import os
import
re
import
pprint
import
traceback
class
Restart
(
Exception
):
"""Causes a debugger to be restarted for the debugged python program."""
pass
# Create a custom safe Repr instance and increase its maxstring.
# The default of 30 truncates error messages too easily.
_repr
=
Repr
()
...
...
@@ -608,6 +614,18 @@ class Pdb(bdb.Bdb, cmd.Cmd):
return
1
do_n
=
do_next
def
do_run
(
self
,
arg
):
"""Restart program by raising an exception to be caught in the main debugger
loop. If arguments were given, set them in sys.argv."""
if
arg
:
import
shlex
argv0
=
sys
.
argv
[
0
:
1
]
sys
.
argv
=
shlex
.
split
(
arg
)
sys
.
argv
[:
0
]
=
argv0
raise
Restart
do_restart
=
do_run
def
do_return
(
self
,
arg
):
self
.
set_return
(
self
.
curframe
)
return
1
...
...
@@ -1012,6 +1030,15 @@ command with a 'global' command, e.g.:
(Pdb) global list_options; list_options = ['-l']
(Pdb)"""
def
help_run
(
self
):
print
"""run [args...]
Restart the debugged python program. If a string is supplied, it is
splitted with "shlex" and the result is used as the new sys.argv.
History, breakpoints, actions and debugger options are preserved.
"restart" is an alias for "run"."""
help_restart
=
help_run
def
help_quit
(
self
):
self
.
help_q
()
...
...
@@ -1204,9 +1231,8 @@ def main():
# Note on saving/restoring sys.argv: it's a good idea when sys.argv was
# modified by the script being debugged. It's a bad idea when it was
# changed by the user from the command line. The best approach would be to
# have a "restart" command which would allow explicit specification of
# command line arguments.
# changed by the user from the command line. There is a "restart" command which
# allows explicit specification of command line arguments.
pdb
=
Pdb
()
while
1
:
try
:
...
...
@@ -1214,6 +1240,9 @@ def main():
if
pdb
.
_user_requested_quit
:
break
print
"The program finished and will be restarted"
except
Restart
:
print
"Restarting"
,
mainpyfile
,
"with arguments:"
print
"
\
t
"
+
" "
.
join
(
sys
.
argv
[
1
:])
except
SystemExit
:
# In most cases SystemExit does not warrant a post-mortem session.
print
"The program exited via sys.exit(). Exit status: "
,
...
...
Misc/NEWS
View file @
8e84c656
...
...
@@ -170,6 +170,9 @@ Core and builtins
Library
-------
- Patch #1393667: pdb now has a "run" command which restarts the debugged
Python program, optionally with different arguments.
- Patch #1649190: Adding support for _Bool to ctypes as c_bool.
- Patch #1530482: add pydoc.render_doc() which returns the documentation
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment