如何使用Perl调试器

时间:2014-04-23 01:09:47

标签: perl debugging

我想使用

调试Perl程序
perl -d example.pl

我读过perldebug,但对我来说太抽象了,所以我想我需要一个例子来逐步练习它。

1 个答案:

答案 0 :(得分:1)

这就像"请你给我一个如何开车的例子"

我已经解释了您最常使用的基本命令。除此之外,您必须阅读调试器的内联帮助并重新阅读perldebug文档

  • 调试器首先显示要执行的 next 行:通常是程序中的第一行

  • 调试器命令大多是单个字母,可能带参数。按 Enter

  • 后,该命令将立即执行
  • 您应该专注于命令sn来完成整个程序。如果下一个语句是一个子程序(或方法)调用,那么s将步骤进入子程序,而n将步骤通过调用。否则sn的行为相同

    当一行代码包含多个子程序调用时,请小心使用s。你可能没有进入你期望的子程序

    你不能进入内置函数,或者不用Perl编写的子程序

    一旦你执行了一个陈述,就没有回头路了。您必须重新启动程序才能尝试不同的程序

  • 只需键入 Enter 即可执行一行Perl代码。代码将在当前语句的上下文中执行

    您可以通过这种方式检查或修改任何变量

  • p命令相同printp $varp @arr的输出与您输入p $varp @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调试器