Perl 调试器中的行操作命令

Perl 调试器中的行操作命令

Perl中的调试器为我们提供了 行操作命令 的功能,但在深入了解它们之前,让我们先谈谈什么是真正的操作:所以一个操作基本上是给调试器的指令,当它到达一个特定的行时就执行它。让这些动作执行背后的原因是为了使调试变得简单。
例如

$i = 0;
for($i = 0; $i <= 9; $i++)
{
      
}
print($i);

以上是一个for循环的基本程序。现在如果我们在第4行指定一个行操作,要求调试器在每次迭代后打印i的值,那么我们就可以检查循环是否正确执行。因此,通过这种方式,它们有助于调试。
因此,为了指定这些行操作,Perl调试器为你提供了 行操作命令 的功能 。 这些命令有助于指定行的动作。行操作命令是指当程序执行到某一行时,我们指定要执行的语句。最常见的行操作是打印变量的值和将变量的错误值重置为所需的值。
以下是行操作命令。

  1. ‘A’命令
  2. ‘A’命令
  3. ‘<‘命令
  4. ‘>’命令

‘a’命令

‘a ‘命令 为某一行代码指定了一个动作。这个动作可以是任何有效的Perl命令。每次执行指定的行时,都会执行指定的动作。

语法

a line no. command to be executed [condition]

如果没有指定行,那么默认情况下,每次执行当前行时都会执行该动作。

例如:

Perl  调试器中的行操作命令

输出:

Perl  调试器中的行操作命令

解释:

在上面的例子中,调试器一到第九行就会执行上面的行。因此,上述语句将被调试器显示出来。

要创建多行的行操作,只需一个接一个地指定语句。如果你需要多行来写完整的动作,请在第一行的末尾使用 \’。

例子

Perl  调试器中的行操作命令
输出

Perl  调试器中的行操作命令

你也可以为执行动作指定一个条件( 这是可选的 )。首先这个条件将被评估,然后如果结果为真,那么将只对指定的行进行操作,否则将不执行任何操作。

在默认情况下,当没有条件时,调试器认为条件已经为真了。因此,每次执行到指定的行时都会执行动作。

注意

There can be only one action per line.

A’命令

A’ 命令 用于删除之前用 a ‘命令 指定的行操作 。 它删除命令中指定的行的动作。
语法

 A lineno.;

例如:

Perl  调试器中的行操作命令

在上面的例子中,为第11行指定的行操作将被删除。

请注意,在5.6.1之前的Perl版本中, A ‘命令 会删除所有指定的行操作。
Perl 5.6.1及以后的版本中,只有当星号作为参数时才会删除所有操作。

例子

Perl  调试器中的行操作命令

<and>命令

当你知道某个变量的值是错误的,但又不知道哪个语句给这个变量分配了错误的值时, **< and >命令 **就很有用。因此,通过使用 **< and >命令 **,你可以在语句执行前后打印变量的值。

**< 命令 **

**’ <‘命令 **用来指定在Perl调试器执行完语句后,在调试器进一步要求更多的调试语句之前,要执行的行操作。

语法

 < action to be performed;

例如:
Perl  调试器中的行操作命令

输出:
Perl  调试器中的行操作命令

上例中给出的命令告诉Perl调试器在再次停止程序的执行并开始调试之前打印指定的语句。

> 命令 **
**’ >’命令 **用来指定在执行代码的其他语句之前要执行的动作。因此,该动作将在执行某一行代码后执行,
**语法

> action to be performed;

例如:

Perl  调试器中的行操作命令

输出

Perl  调试器中的行操作命令

要删除一个用 **< 和>命令 **指定的动作,只需重新输入用于指定该动作的命令。

DB<8> < ;

这将删除用 **< 命令 **>指定的行动 。

DB<9> > ;

这将删除使用 **> 命令 **指定的操作 。

使用’L’命令显示行的动作

L’ 命令 用于显示断点、动作和观察点。从而帮助用户了解代码中的所有动作、断点和观察点。现在让我们来学习如何用它来显示动作。

例子

DB<3> L a;

Perl  调试器中的行操作命令

使用 L ‘命令 来显示动作有利于调试。比如说。如果你想删除一个特定的动作,但你不知道它对应的是哪一行。因此,你可以使用第一个 L ‘命令 来显示所有的动作,然后使用 A ‘命令 来删除想要的动作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程