perl脚本的运行与调试

Perl调试器的用法:

缺省的Perl调试器就是perl解释器本身,另外还有图形界面的调试器。因为我在写perl脚本程序的时候都是用Editplus编辑的,然后在命令提示符下运行,所以我这里讲下在CMD中怎么调试perl脚本perl

CMD中:cd 进入脚本所在的文件夹下

perl -d  test.pl   ---进入调试模式
l                  ---显示脚本中的几行
l                  ---继续显示
b 20               ---在第20行设置一个断点
r                  ---运行到这个断点
x$ip            ---查询$ip这个变量的值,是否被执行了,是否跟自己预计一样
n                  ---继续运行下一行脚本
q                  ---退出调试

这样就可以调试这个脚本运行到哪一部,从而定位到脚本的问题出在哪了。

调试中其他使用到的命令:

h:显示调试器的帮助信息。
|h:以分页形式显示调试器的帮助信息。

p 表达式:显示变量或表达式的值,不显示复杂变量嵌入的结构和数据。
x 表达式:显示变量或表达式的值,对较为复杂的变量,以一种可读形式显示嵌入的结构
和数据。
V 包名 变量名列表:显示指定包内的所有(或部分)变量的值。(缺省的包名为 main)
X 变量名列表:显示当前包内所有(或部分)变量的值。
注:V、X命令中的变量名列表以空格分隔且变量名前应去掉$、@或%
T:程序的调用栈回退一级。
s 表达式:单步执行,进入子函数。(step into)如果提供一个表达式并且表达式中包
括函数调用,则单步进入该函数内。
n 表达式:单步执行,越过子函数。(step over)
c 行号/函数名:执行到某一行或某一个函数。
l:显示未执行的一窗(一屏)文件内容。
l min-max:显示第min到第max行的文件内容。
l 行号:显示指定行的内容。
l 函数名:显示指定函数的一窗(一屏)文件内容。
w 行号:显示某行周围一窗(一屏)文件内容。

f 文件名:切换到另一个文件。
/模式:在当前文件中向前(文件尾)查找匹配的字符串。
?模式:在当前文件中向后(文件头)查找匹配的字符串。
L:显示所有断点和附加操作。

!number:重新执行以前第number次执行的调试命令。
!-number:重新执行现在以前number次执行的调试命令。
!模式:重新执行以前执行过的与模式匹配的调试命令。
!!命令:不退出调试器执行一个shell命令。
H-number:显示以前执行的number条调试命令。如果省略number,则显示所有执行过的

R:重新启动正在调试的程序。
q或^D:退出调试器。

如果想直接运行到第N行语句,可以在第N行处设置一个断点:b N(将N替换为需要设置断点的行

号),回车后断点设置成功,可以输入L来查看所设置的所有断点情况,不想查看也可以直接输入c

回车后就直接运行到设置断点的语句处了

想要删除断点可以用B N(将N替换为需要设置断点的行号),回车后所在行处的断点即被删除,

也可以通过B *来删除所有的断点

想要查看变量的值,通过print 变量名就可以查看了

也可以通过给变量赋值来直接改变调试中脚本里的变量的值,比如直接输入:$debug = 0,这样

$debug的值就被赋为0了

附perlIDE的使用:

首先下载perlIDE http://sourceforge.net/projects/open-perl-ide/files/Open%20Perl%20IDE/Open%20Perl%20IDE%201.0/stats/timeline

wKioL1M-JzXAWETMAAB_n7ijpZU193.jpg

Step 1:patch解压,将里面的dbTemplate.txt解压到IDE里面去

wKiom1M-J_DjBBlNAADEHjzG1Qo252.jpg

Step 2:打开dbTemplate.txt,在文件的前面加上(如图):
use win32;

然后重新载入一个perl脚本,F9运行,F8一步一步进行调试。


你可能感兴趣的:(perl;调试;脚本)