编程学习biancheng.45soft.com 本站提供了各种在线教程和资料,供大家学习与参考.
编程学习
当前位置: 主页 > Perl > 调试器 >

Perl 调试器


首先,你试着用过 use warinings 用法?


如果你运行 Perl 的时候使用了 -d 开关,那么你的程序将在 Perl 的调试器里运行。它运行得象一个交互式的 Perl 环境,给你提示输入调试器命令,这样你就可以检查你的源码,设置断点,输出你的函数调用堆栈,修改变量值等等。任何调试器不能识别的命令都会当作正在被调试的包里面的 Perl 代码直接执行(用 eval)。(调试器使用 DB 包存储自己的状态信息,以避免破坏你的程序的状态。)这个功能非常好用,以至于有时候人们经常使用调试器来交互地测试 Perl 的构造。这时候,它不在乎你让 Perl 调试什么程序,所以我们经常选择一个没有什么意义的:

%perl -de 42

在 Perl 里,调试器不是一个与被调试的程序完全分离的程序,通常在一些典型的编程环境中都是这样的。与之不同的是,-d 标志告诉编译器向它准备交给解释器的分析树里插入源码信息。这就意味着在编译器工作之前,你的程序必须首先正确编译,如果成功,解释器预先装载一个包含调试器本身的特殊 Perl 库文件。

%perl -d /path/to/program

该程序会在第一个运行时可执行语句前面停止(参阅有关编译时语句的“使用调试器” 一节)然后询问你输入调试器命令。当调试器停止并且显示你的一行代码的时候,它显示的是准备执行的代码,而不是刚才执行过的。
当调试器看到一行,他首先检查有没有断点,打印该行(调试器应该处于跟踪模式),执行任何动作(用 a 命令创建,稍后在“调试器命令”里介绍),最后如果有断点或者调试器处于单步模式则提示用户。如果没有断点,它象平时一样计算该行然后继续下一行。

Perl
Perl 调试器