perl调试总结

来源:互联网 发布:js 多时区夏令时切换 编辑:程序博客网 时间:2024/05/22 06:41

因为最近的工作都是修bug, 在调试perl代码的过程中,经常都会用到'x','c','b','s','n','l'这些option。

猜想perldebug应该还有一些更为强大的option,于是上午抽空看了下perldebug的文档,结果收获还是比较丰富的。

 

查看程序堆栈 T

首先要说的是'T'这个命令,使用该命令可以查看到程序目前的执行堆栈。如果程序走到了在一个函数里面,但是我想知道这个函数是在哪里被调用的,这种情况下就能'T'一下,据知道了。

 

程序执行到当前函数return的地方 r

'r'可以继续程序运行,一直到当前函数返回的地方。如果一个大函数内部有很多return的地方, 我们想找到它返回的地方,不需要在每个地方都设置断点,直接使用'r就行了。

 

跟踪变量 w expr

和gdb一样,perldebug也有一个'w'用来跟踪一些变量,当被跟踪的变量值发生改变的时候,程序会停在哪里,并显示出其新老值。

 

列出所有的断点和跟踪变量 L

这个没啥好说的,就是把之前打了断点好跟踪的变量都列出来

 

在断点执行前,设置一个action a [line] command

该命令类似于'b',不同的地方是还可以在执行一个command,类似于:a 53 print "DB FOUND $foo\n",这样就能每次到53行的时候,把$foo的值打印出来。

 

重新调试 R

这个。。。就是重新调试一次的意思。。。并且保留了之前设置的breakpoint, action等信息。