2

pdb是默认的 Python 调试器,有一个未记录的 (?)retval命令,如果您已经计算过当前函数的返回值并且距离返回调用者框架只有一步之遥,该命令会打印它。

图形Winpdb调试器中是否有类似的功能?我在任何地方都找不到返回值,并且它不将 retval 识别为命令。


顺便说一句,我知道我可以添加一个中间变量并检查它,但我想避免编辑我正在调试的代码,特别是当它来自第三方库时。

#original code
def f(x):
    return x+1

#debugging code
def f(x):
   r = x+1
   return r

最后,我也对替代调试器持开放态度,只要它们具有 GUI、在 Linux 上运行并且不捆绑在 IDE 中即可。

4

2 回答 2

1

在控制台中

  • 用于bp filename.py:f设置断点f
  • 使用go并等待触发断点。
  • 介入并使用rreturn
  • 使用voreval获取值,例如v x+1
于 2013-08-15T08:34:40.817 回答
1

Does a curses GUI count? The PuDB debugger runs in the terminal, but has a curses-based GUI. See the screenshot

(don't be turned off by the blue, there are other themes as well).

它具有您想要的功能,当您跨过 return 语句时,它会停止并向您显示返回值。请看下面的截图 在此处输入图像描述

于 2013-08-10T02:00:52.280 回答