debugging ipdb中的后续“list”命令

hzbexzde  于 2023-02-13  发布在  其他
关注(0)|答案(3)|浏览(142)

我刚刚注意到在ipdb中使用l(即list命令)时的一个奇怪行为,我想我过去在Perl调试器中见过类似的行为,但它仍然让我感到困惑。
我第一次inoke的时候,它正确地显示了当前步骤(断点)周围的大约10行代码。但是,如果我反复按它,它就不再显示当前位置周围的代码,而是显示它下面的代码。
最后list显示了脚本的最后几行,如果我再次按l,它将不再显示任何内容。
为什么会这样?我怎样才能让它的行为与我第一次调用它时一致?

pxy2qtax

pxy2qtax1#

许多命令行调试器都是这样工作的(pdb、gdb、ipdb ...)。
如果要再次显示当前行,请指定行号。

l 42

如果不知道当前行号,请发出where命令。

oknwwptz

oknwwptz2#

大多数调试器中的几个list命令显示不同的行,原因很简单,反复显示相同的源代码行没有多大意义,假设您可以向后滚动以查看之前看到的内容。
话虽如此,让我说,如果你愿意使用trepan调试器,它确实有能力显示与你当前停止使用"list ."的地方相同的源代码行。要查看最后一个列表之前的行,请使用“list -"。
您还可以使用“set listsize"”设置默认情况下要列出的行数。

4ngedf3f

4ngedf3f3#

这始终显示在当前行周围
(pdb) l .

相关问题