Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions Lib/pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -925,6 +925,9 @@ def _read_code(self, line):
return code, buffer, is_await_code

def default(self, line):
if not self.curframe:
self.error("No current frame.")
return
if line[:1] == '!': line = line[1:].strip()
locals = self.curframe.f_locals
globals = self.curframe.f_globals
Expand Down Expand Up @@ -1181,6 +1184,7 @@ def complete_multiline_names(self, text, line, begidx, endidx):
return self.completedefault(text, line, begidx, endidx)

def completedefault(self, text, line, begidx, endidx):
assert self.curframe is not None
if text.startswith("$"):
# Complete convenience variables
conv_vars = self.curframe.f_globals.get('__pdb_convenience_variables', {})
Expand Down Expand Up @@ -1408,6 +1412,9 @@ def do_break(self, arg, temporary=False):
# To be overridden in derived debuggers
def defaultFile(self):
"""Produce a reasonable default."""
if self.curframe is None:
self.error("No current frame.")
return None
filename = self.curframe.f_code.co_filename
if filename == '<string>' and self.mainpyfile:
filename = self.mainpyfile
Expand Down Expand Up @@ -1946,6 +1953,9 @@ def do_debug(self, arg):
if not arg:
self._print_invalid_arg(arg)
return
if not self.curframe:
self.error('No current frame.')
return
self.stop_trace()
globals = self.curframe.f_globals
locals = self.curframe.f_locals
Expand Down Expand Up @@ -2108,6 +2118,9 @@ def do_list(self, arg):
exception was originally raised or propagated is indicated by
">>", if it differs from the current line.
"""
if not self.curframe:
self.error('No current frame.')
return
self.lastcmd = 'list'
last = None
if arg and arg != '.':
Expand Down Expand Up @@ -2153,6 +2166,9 @@ def do_longlist(self, arg):
if arg:
self._print_invalid_arg(arg)
return
if not self.curframe:
self.error('No current frame.')
return
filename = self.curframe.f_code.co_filename
breaklist = self.get_file_breaks(filename)
try:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix: breakpoint() in pdb can cause crash.
Loading