ipython调试器:交互式pdb上的完全回溯?
我最近从ipython0.10切换到了ipython0.11。在ipython0.11中,当python调试器启动时(即使用ipython调试器:交互式pdb上的完全回溯?,python,ipython,pdb,ipdb,Python,Ipython,Pdb,Ipdb,我最近从ipython0.10切换到了ipython0.11。在ipython0.11中,当python调试器启动时(即使用%pdb),我只看到完整回溯的一小部分,而在ipython0.10中,我会看到完整回溯。据我所知,完整的回溯无法从pdb命令行直接访问-您可以使用“u”在其中导航,但无法直接看到它 那么,有没有办法显示完整的回溯?例如配置参数 或者,更有用的是,有没有办法让ipython只显示捕获的异常,而不是显示捕获的代码的位置 编辑:示例: In [1]: pdb Automatic
%pdb
),我只看到完整回溯的一小部分,而在ipython0.10中,我会看到完整回溯。据我所知,完整的回溯无法从pdb命令行直接访问-您可以使用“u”在其中导航,但无法直接看到它
那么,有没有办法显示完整的回溯?例如配置参数
或者,更有用的是,有没有办法让ipython只显示捕获的异常,而不是显示捕获的代码的位置
编辑:示例:
In [1]: pdb
Automatic pdb calling has been turned ON
In [2]: 1/0
> <ipython-input-2-05c9758a9c21>(1)<module>()
-1 1/0
ipdb> q
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/Users/adam/<ipython-input-2-05c9758a9c21> in <module>()
----> 1 1/0
ZeroDivisionError: integer division or modulo by zero
[1]中的:pdb
自动pdb呼叫已打开
在[2]中:1/0
> (1)()
-1 1/0
ipdb>q
---------------------------------------------------------------------------
ZeroDivisionError回溯(最近一次呼叫上次)
/Users/adam/in()
----> 1 1/0
ZeroDivisionError:整数除法或模零除法
我想在将q
从pdb中取出之前查看ZeroDivisionError
有没有办法让ipython只显示
捕获,而不是显示在代码中捕获的位置
您可以使用:
从:
sys.excepthook(类型、值、回溯)
此函数用于打印给定的回溯和异常
sys.stderr
当引发异常并取消捕获时,解释器调用
带有三个参数的sys.excepthook,异常类,异常
实例和一个回溯对象。在本周的互动会议中
在控件返回到提示符之前发生;在Python中
程序这发生在程序退出之前。处理
这样的顶级异常可以通过分配另一个异常来定制
三参数函数,用于sys.excepthook
sys.\uuuuu显示钩子\uuuuuu
sys.\uuuuuuuuuuuuuuuuuuuuuuuuuuu除外
这些对象包含displayhook和的原始值
程序开始时的excepthook。它们被保存,以便
displayhook和excepthook可以恢复,以防它们发生错误
替换为破损的物体
您还可以尝试将
--xmode
选项设置为Plain
发件人:
--xmode=Context
:
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain ipython-debugger-full-traceback-on-interactive-pdb.py
------------------------------------------------------------
Traceback (most recent call last):
File "ipython-debugger-full-traceback-on-interactive-pdb.py", line 2, in <module>
1 / 0
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Context ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:54 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain
In [1]: 1 / 0
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
[ 20:03 jon@hozbox ~/SO/python ]$ ipython --xmode=Context
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
[ 20:01 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
并且不指定.py文件:
--xmode=Plain
:
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain ipython-debugger-full-traceback-on-interactive-pdb.py
------------------------------------------------------------
Traceback (most recent call last):
File "ipython-debugger-full-traceback-on-interactive-pdb.py", line 2, in <module>
1 / 0
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Context ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:54 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain
In [1]: 1 / 0
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
[ 20:03 jon@hozbox ~/SO/python ]$ ipython --xmode=Context
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
[ 20:01 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
--xmode=Verbose
:
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain ipython-debugger-full-traceback-on-interactive-pdb.py
------------------------------------------------------------
Traceback (most recent call last):
File "ipython-debugger-full-traceback-on-interactive-pdb.py", line 2, in <module>
1 / 0
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Context ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:54 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose ipython-debugger-full-traceback-on-interactive-pdb.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/ipython-debugger-full-traceback-on-interactive-pdb.py in <module>()
1
----> 2 #!/usr/bin/python
3 1 / 0
4
5
ZeroDivisionError: integer division or modulo by zero
[ 19:55 jon@hozbox ~/SO/python ]$ ipython --xmode=Plain
In [1]: 1 / 0
------------------------------------------------------------
Traceback (most recent call last):
File "<ipython console>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
[ 20:03 jon@hozbox ~/SO/python ]$ ipython --xmode=Context
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
[ 20:01 jon@hozbox ~/SO/python ]$ ipython --xmode=Verbose
In [1]: 1 / 0
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/home/jon/SO/python/<ipython console> in <module>()
ZeroDivisionError: integer division or modulo by zero
[20:01jon@hozbox~/SO/python]$ipython--xmode=Verbose
在[1]中:1/0
---------------------------------------------------------------------------
ZeroDivisionError回溯(最近一次呼叫上次)
/home/jon/SO/python/in()
ZeroDivisionError:整数除法或模零除法
.消息的第二部分(-xmode)似乎是答案,但似乎不起作用。我试过所有3个modename,回溯看起来都一样。知道是什么原因吗?谢谢。不幸的是,这指出了ipython(我的副本?)中可能存在的错误:
$ipython--xmode=Plain警告:无法识别的别名:“xmode”,它可能没有任何效果。
但是,一旦进入ipython:在[1]中:%xmode异常报告模式:Plain
工作正常。您可能需要构建ipython的干净副本(或使用easy_install/pip重新安装)。作为一种解决方法,您可以将该%mode…
行作为init命令添加到~/.ipython/config文件中,并解决问题(希望如此)!这是IPython 0.11中的一个错误-回溯是在您离开调试器后打印的,而不是在调试器启动之前打印的。它将被固定为0.12(应该在圣诞节前发出)。