我刚刚注意到在ipdb中使用l(即list命令)时的一个奇怪行为,我想我过去在Perl调试器中见过类似的行为,但它仍然让我感到困惑。我第一次inoke的时候,它正确地显示了当前步骤(断点)周围的大约10行代码。但是,如果我反复按它,它就不再显示当前位置周围的代码,而是显示它下面的代码。最后list显示了脚本的最后几行,如果我再次按l,它将不再显示任何内容。为什么会这样?我怎样才能让它的行为与我第一次调用它时一致?
ipdb
l
list
pxy2qtax1#
许多命令行调试器都是这样工作的(pdb、gdb、ipdb ...)。如果要再次显示当前行,请指定行号。
l 42
如果不知道当前行号,请发出where命令。
where
oknwwptz2#
大多数调试器中的几个list命令显示不同的行,原因很简单,反复显示相同的源代码行没有多大意义,假设您可以向后滚动以查看之前看到的内容。话虽如此,让我说,如果你愿意使用trepan调试器,它确实有能力显示与你当前停止使用"list ."的地方相同的源代码行。要查看最后一个列表之前的行,请使用“list -"。您还可以使用“set listsize"”设置默认情况下要列出的行数。
4ngedf3f3#
这始终显示在当前行周围(pdb) l .
(pdb) l .
3条答案
按热度按时间pxy2qtax1#
许多命令行调试器都是这样工作的(pdb、gdb、ipdb ...)。
如果要再次显示当前行,请指定行号。
如果不知道当前行号,请发出
where
命令。oknwwptz2#
大多数调试器中的几个list命令显示不同的行,原因很简单,反复显示相同的源代码行没有多大意义,假设您可以向后滚动以查看之前看到的内容。
话虽如此,让我说,如果你愿意使用trepan调试器,它确实有能力显示与你当前停止使用"list ."的地方相同的源代码行。要查看最后一个列表之前的行,请使用“list -"。
您还可以使用“set listsize"”设置默认情况下要列出的行数。
4ngedf3f3#
这始终显示在当前行周围
(pdb) l .