perl的调试
perl程序的调试,以前玩php都是print,var_dump(),firebug之类来调试。在perl中,也有很多来方法我们调试的。在我看来调试分二种,一种是功能调试(排错之类保证功能完整).一种是性能调试。
功能调试
1. 最常用的方法
(1. print:这个用户就不用写了吧
(2. 模块: Data::Dumper
这个使用很容易,主要就是使用Dumper的函数做输出
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/perl use strict; use Data::Dumper; my $hash = { foo => 'test1', bar => { foo1 => 'test2', } }; print Dumper($hash); |
这个会非常非常清楚的输出数据结构的信息:
1 2 3 4 5 6 |
$VAR1 = { 'bar' => { 'foo1' => 'test2' }, 'foo' => 'test1' }; |
(3 模块:Smart::Comments
这个模块就更加好用了,伟大的CPAN…..这个只需要###加上后面的变量就能输出变量中的信息。你可以在调试时打开,调试完了就关掉。超爽。
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/perl use strict; use Smart::Comments; my $hash = { foo => 'test1', bar => { foo1 => 'test2', } }; ### hash: $hash |
见到上面###后面的内容没,这样很不错吧。。这个更新清楚的打印出数据结构
1 2 3 4 5 6 |
### hash: { ### bar => { ### foo1 => 'test2' ### }, ### foo => 'test1' ### } |
(2 perl的调试器
1 |
perl -d yourperl.pl |
-s Step 运行一行,跟踪进入子程序
-n Next 运行一行
-r Return 运行到当前子程序结束
-p 变量名 查看变量
-x 变量名 查看变量,友好格式(hash用引用)
-l/-/w 列出前后的代码
-c 行号 执行到"行号"
-c 执行,直到遇到断点
-b 行号 设置断点(b 子程序名)
-b 行号 条件 设置条件断点
-d 行号 去除"行号"处的断点
-L 列出所有的断点
-t 跟踪执行
(3 出错信号
这个不在详细写了。在我的另一个文章中,perl中的并发和信号中
性能调试
这个晚点在写困死了,其它下次写
(1. test模块
(2. Devel::Coverage模块
perl -d:Coverage yourperl.pl
这个主要可以测试到代码的覆盖范围。分支的运行情况。
(3. Devel::SmallProf模块
这个模块会生成非常不错的文本文件samllprof.out来显示各行运行的时间,真实时间和cpu时间。它的精度要求好些所以需要Time::HiRes这个模块.
1 |
perl -d:SmallProf yourperl.pl |
暂时关闭和打开profile:
1 |
$DB::profile = 0; |
这之间的代码不会被SmallProf跟踪
1 |
$DB::profile = 1; |
指定要跟踪的模块名称,主程序用’main’表示,例如
1 2 3 4 |
use Data::Dumper; use TK; %DB::package = ('main' => 1, 'Data::Dumper' => 1); |
只跟踪主程序和Data::Dumper的代码执行情况 不列出执行计数为0的行
1 |
$DB::drop_zeros = 1; |
(4. Devel::DProf模块
perl -d:DProf yourperl.pl
1 |
这个和上面的作者大多相同,但这个会生成自己的格式文件,可以用它来画图之类. |
(5 DBI::Profile
测试DBI的,没用过。。。
建议继续学习:
- 网络数据包调试利器之wireshark (阅读:18537)
- perl更新/修改/删除文本文件内容 (阅读:9424)
- perl大牛flw传说 (阅读:6506)
- 内存越界的概念和调试方法 (阅读:6263)
- perl模块Getopt::Std用法及实例-从命令行读取参数模块 (阅读:5867)
- [Perl] Template::Toolkit 模板技术. (阅读:5361)
- GDB中应该知道的几个调试方法 (阅读:5443)
- webapp网页调试工具Chrome Devtools (阅读:5258)
- 在perl中连接和使用sqlite做数据存储 (阅读:5040)
- Perl命令行常见用法及技巧 (阅读:4792)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:扶凯 来源: 扶凯
- 标签: perl 调试
- 发布时间:2009-11-18 23:38:10
- [68] 如何拿下简短的域名
- [68] Go Reflect 性能
- [64] Oracle MTS模式下 进程地址与会话信
- [61] 图书馆的世界纪录
- [60] IOS安全–浅谈关于IOS加固的几种方法
- [60] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [53] 视觉调整-设计师 vs. 逻辑
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 界面设计速成