#
- def format_stack_entry(self, frame_lineno):
+ def format_stack_entry(self, frame_lineno, lprefix=': '):
import linecache, repr, string
frame, lineno = frame_lineno
filename = frame.f_code.co_filename
s = s + '->'
s = s + repr.repr(rv)
line = linecache.getline(filename, lineno)
- if line: s = s + ': ' + string.strip(line)
+ if line: s = s + lprefix + string.strip(line)
return s
# The following two methods can be called by clients to use
import repr
+# Interaction prompt line will separate file and call info from code
+# text using value of line_prefix string. A newline and arrow may
+# be to your liking. You can set it once pdb is imported using the
+# command "pdb.line_prefix = '\n% '".
+# line_prefix = ': ' # Use this to get the old situation back
+line_prefix = '\n-> ' # Probably a better default
+
class Pdb(bdb.Bdb, cmd.Cmd):
def __init__(self):
def interaction(self, frame, traceback):
self.setup(frame, traceback)
- self.print_stack_entry(self.stack[self.curindex])
+ self.print_stack_entry(self.stack[self.curindex],
+ line_prefix)
self.cmdloop()
self.forget()
except KeyboardInterrupt:
pass
- def print_stack_entry(self, frame_lineno):
+ def print_stack_entry(self, frame_lineno, prompt_prefix=''):
frame, lineno = frame_lineno
if frame is self.curframe:
print '>',
else:
print ' ',
- print self.format_stack_entry(frame_lineno)
+ print self.format_stack_entry(frame_lineno, prompt_prefix)
# Help methods (derived from pdb.doc)