我知道我可以使用命令添加变量和表达式的w
监视,是否可以告诉它简单地解析每个命令并在该命令中包含特定文本时停止?
类似于w m/bad command/
where$_
的字符串包含正在执行的下一个命令。
我现在正在 Windows 上使用 Komodo 进行远程 CGI 调试,但我也可以perl -d
在 linux shell 上使用。
更新:
我会尽力使这一点更清楚。有一个文件,其中包含磁盘上的数据被删除,我不知道在哪里。我正在调试的程序由许多相互需要的 .pl 文件组成,完整的代码库甚至更大。我当然可以通过 grep 来获取数据文件名称的一部分(我知道扩展名),或者unlink
. 但是由于我不知道我的程序正在使用哪些代码文件,所以这并没有让我走得太远。
让我们考虑这段代码,它将被调试:
if ($foo == 1) {
unlink 'filename.example';
}
现在,当我调试它时,如果将要执行的下一个 perl 命令(来自脚本)包含/example/
. 我想要一种在执行下一个命令之前运行的钩子。
这样,我不需要知道我想中断的东西在哪里(比如在哪一行或文件中),也不需要变量名(因为没有变量名)。
我知道这很难解释,但我认为这可能是一个常见问题。也许还有另一种方法?