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