我想使用
调试Perl程序perl -d example.pl
我读过perldebug
,但对我来说太抽象了,所以我想我需要一个例子来逐步练习它。
答案 0 :(得分:1)
这就像"请你给我一个如何开车的例子" 。
我已经解释了您最常使用的基本命令。除此之外,您必须阅读调试器的内联帮助并重新阅读perldebug文档
调试器首先显示要执行的 next 行:通常是程序中的第一行
调试器命令大多是单个字母,可能带参数。按 Enter
您应该专注于命令s
和n
来完成整个程序。如果下一个语句是一个子程序(或方法)调用,那么s
将步骤进入子程序,而n
将步骤通过调用。否则s
和n
的行为相同
当一行代码包含多个子程序调用时,请小心使用s
。你可能没有进入你期望的子程序
你不能进入内置函数,或者不用Perl编写的子程序
一旦你执行了一个陈述,就没有回头路了。您必须重新启动程序才能尝试不同的程序
只需键入 Enter 即可执行一行Perl代码。代码将在当前语句的上下文中执行
您可以通过这种方式检查或修改任何变量
p
命令相同到print
。 p $var
或p @arr
的输出与您输入p $var
或p @arr
您可以使用x
转储 list 上下文中的表达式。输出由显示列表
命令点.
,连字符-
和v
对于查看源代码非常有用。 .
和-
将分别显示当前和上一个源代码行。 v
将在当前源代码行周围显示一个窗口
要快速返回到特定的代码行,您可以设置断点并使用c
命令继续执行该行。例如c 13
Enter 将执行所有代码,直到第13行然后停止
使用c
定义的断点是临时,因此如果您想再次(在循环中)继续使用同一行,则必须输入c 13
再次输入
c
将运行程序的其余部分,直到它退出或达到使用b
定义的永久断点
您可以使用b
命令指定具有更复杂条件的断点。只能使用相应的B
命令删除它们,或清除所有断点的B *
h
显示可用命令的列表,h *command*
,如h c
,将向您显示单个命令的详细帮助
最后,q
将结束调试会话并终止程序
调试器将完成更多工作,但这些是您需要了解的基本命令。您应该试验它们并查看帮助文本的内容,以便更熟练地使用Perl调试器