|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
还在通过在代码加各种“if” "print"来调试脚本吗?这样已经落伍了,要像个牛人一样debug。
以下列出几条必备命令,帮助你轻松调试:
perl -d myprogram
Essentially the -d switch allows you to communicate with the perlexecutable, and allows the perl executable to communicate with you.
Stepping up to the plate
- l - lists the next few lines
- p [variable name] - lets you print the value of a variable to the command line
- q - I quit.
- r - returns from current subroutine
If you have written your program as a few subroutines, this is handy for running through each and checking the return. - n - executes the next statement at this level
Meansyou don't have to go through those boring subroutine calls. If youdon't know what I just wrote, get into a program and try it a couple oftimes. You'll get the hang of it. - s - The step command
Okay,this is the key for simple debugging. Crank up your program in thedebugger and step through it. If its a small program, this and the rcommand can take care of most of your needs. By the way, once you enterthe s command, just hit enter to repeat the command. Breaking away
Breakpointsallow you to specify the next stopping point in a program. For example,lets say I know my problems at line 65, I might insert a breakpoint atline 60 and step through the final five lines of code before theproblem. You just saved hitting the enter key 60 times.
b - Set a breakpoint
Once you have started the perl debugger you may set a breakpoint at any executable line number.
b 20 - Sets a breakpoint at line 20.
b subroutinename - handy little deviation. If you know the subroutine name, this breaks on the first line inside the routine.
b 20 condition- depending on your background, this is called a conditional breakpointor watchpoint. Perl breaks when the condition you specify is met.
Examples - b 20 x>30 Breaks at line 20 when x is greater than 30
- b 20 x=~/foo/i Breaks at line 20 when x contains "foo"
To start the program use c (continue), which runs the program to the first breakpoint or watchpoint. |
|