因为最近的工作都是修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等信息。