ipdb icon indicating copy to clipboard operation
ipdb copied to clipboard

Calling psource twice crashes the program

Open ychaouche opened this issue 8 years ago • 4 comments

Here's a complete, minimalist ipdb session showing the bug. First call to psrouce goes well but second one crashes the program.

root@messagerie-secours[10.10.10.19] ~ # ipdb /usr/local/bin/mdedup
> /usr/local/bin/mdedup(4)<module>()
      3 # -*- coding: utf-8 -*-
----> 4 import re
      5 import sys

ipdb> psource
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/ipdb/__main__.py", line 168, in main
    pdb._runscript(mainpyfile)
  File "/usr/lib/python2.6/pdb.py", line 1215, in _runscript
    self.run(statement)
  File "/usr/lib/python2.6/bdb.py", line 372, in run
    exec cmd in globals, locals
  File "<string>", line 1, in <module>
  File "/usr/local/bin/mdedup", line 4, in <module>
    import re
  File "/usr/local/bin/mdedup", line 4, in <module>
    import re
  File "/usr/lib/python2.6/bdb.py", line 46, in trace_dispatch
    return self.dispatch_line(frame)
  File "/usr/lib/python2.6/bdb.py", line 64, in dispatch_line
    self.user_line(frame)
  File "/usr/lib/python2.6/pdb.py", line 150, in user_line
    self.interaction(frame, None)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/debugger.py", line 268, in interaction
    OldPdb.interaction(self, frame, traceback)
  File "/usr/lib/python2.6/pdb.py", line 198, in interaction
    self.cmdloop()
  File "/usr/lib/python2.6/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.6/pdb.py", line 267, in onecmd
    return cmd.Cmd.onecmd(self, line)
  File "/usr/lib/python2.6/cmd.py", line 219, in onecmd
    return func(arg)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/debugger.py", line 544, in do_psource
    self.shell.find_line_magic('psource')(arg, namespaces=namespaces)
  File "<decorator-gen-74>", line 2, in psource
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/magic.py", line 191, in <lambda>
    call = lambda f, *a, **k: f(*a, **k)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/magics/namespace.py", line 97, in psource
    raise UsageError('Missing object name.')
UsageError: Missing object name.
Uncaught exception. Entering post mortem debugging
Running 'cont' or 'step' will restart the program
> /usr/local/lib/python2.6/dist-packages/IPython/core/magics/namespace.py(97)psource()
     96         if not parameter_s:
---> 97             raise UsageError('Missing object name.')
     98         self.shell._inspect('psource',parameter_s, namespaces)

ipdb> psource
Traceback (most recent call last):
  File "/usr/local/bin/ipdb", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.6/dist-packages/ipdb/__main__.py", line 184, in main
    pdb.interaction(None, t)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/debugger.py", line 268, in interaction
    OldPdb.interaction(self, frame, traceback)
  File "/usr/lib/python2.6/pdb.py", line 198, in interaction
    self.cmdloop()
  File "/usr/lib/python2.6/cmd.py", line 142, in cmdloop
    stop = self.onecmd(line)
  File "/usr/lib/python2.6/pdb.py", line 267, in onecmd
    return cmd.Cmd.onecmd(self, line)
  File "/usr/lib/python2.6/cmd.py", line 219, in onecmd
    return func(arg)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/debugger.py", line 544, in do_psource
    self.shell.find_line_magic('psource')(arg, namespaces=namespaces)
  File "<decorator-gen-74>", line 2, in psource
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/magic.py", line 191, in <lambda>
    call = lambda f, *a, **k: f(*a, **k)
  File "/usr/local/lib/python2.6/dist-packages/IPython/core/magics/namespace.py", line 97, in psource
    raise UsageError('Missing object name.')
UsageError: Missing object name.

If you suspect this is an IPython bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at [email protected]

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.

Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    %config Application.verbose_crash=True

root@messagerie-secours[10.10.10.19] ~ # 

ychaouche avatar Aug 17 '16 10:08 ychaouche

Have you tried this outside ipdb ? I have the feeling this is an IPython bug.

gotcha avatar Aug 17 '16 10:08 gotcha

Yes tried with IPython works fine

In [4]: psource
UsageError: Missing object name.
In [5]: psource
UsageError: Missing object name.
In [6]: psource
UsageError: Missing object name.
In [7]: psource
UsageError: Missing object name.
In [8]: 

ychaouche avatar Aug 17 '16 10:08 ychaouche

Which versions of ipdb and IPython ?

gotcha avatar Aug 17 '16 12:08 gotcha

ipython 1.2.1

root@messagerie-secours[10.10.10.19] ~ # ipython
Python 2.6.6 (r266:84292, Dec 26 2010, 22:31:48) 
Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 

ipdb 0.10.1

/usr/local/lib/python2.6/dist-packages/ipdb-0.10.1.dist-info/

ychaouche avatar Aug 17 '16 13:08 ychaouche