Perl脚本的调试方法

Q&A

什么是ActivePerl?

ActivePerl是Perl语言的Windows版本,Perl是一种很自由而且功能很强大的编程语言,主要被用作 Web 编程、数据库处理、XML 处理以及系统管理,而且Perl 相当快捷实用。

什么是Dzsoft perl ?
Dzsoft perl editor是Perl/CGI 脚本编写、编辑和调试工具。它有着舒适而直观的用户界面,适合于初学者和高级程序员。它简单得有些奇怪,但是它真的是一款强大的工具。它有调试功能,一个舒适的带语法加亮的编辑器,一个语法检查功能可以找到你脚本里的错误,还有许多其他功能用来方便Perl的开发。

dzsoft可以和active perl关联,就可以在编辑器里直接调试程序了。

——————————————————

Perl调试器的用法:
缺省的Perl调试器就是perl解释器本身,另外还有图形界面的调试器。因为我们在开发
程序时一般都使用telnet访问服务器,所以这里主要介绍一下缺省的命令行调试器的用法。用
-d 命令行选项启动Perl解释器,例如
perl -d test.pl 即进入Perl调试器的交互界面。
调试命令列表如下:(所有命令都在调试提示符下顶格输入,命令大小写有关)
h:显示调试器的帮助信息。
|h:以分页形式显示调试器的帮助信息。
h 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:显示所有断点和附加操作。
S 模式:显示匹配(或不匹配,在模式前加!)的函数名。
t:切换跟踪模式。
t 表达式:跟踪执行表达式过程。
b 行号 条件:在某一行设置一个断点,当程序执行到该行并且条件满足时,产生中断。
b 函数名 条件:在某函数上设置一个断点,当程序执行到该函数并且条件满足时,产生
中断。
b load 文件名:在某个文件的第一个可执行语句上设置一个断点。
d 行号:删除某一行的断点。
D:删除所有断点。
a 行号 命令:给程序的某一行加一个附加操作。在执行该行语句前先执行附加的操作。
A:删除所有已安装的附加操作。
W 表达式:增加一个监视项。
W:删除所有监视项。
O 选项名?:查询调试器可选项的值。
O 选项名=选项值:设置调试器可选项的值。
lt Perl语句:设置一个操作显示调试提示符前执行的操作。
ltlt Perl语句:增加一个显示调试提示符前执行的操作。
gt Perl语句:设置一个离开调试提示符(转入运行态)时执行的操作。
gtgt Perl语句:增加一个离开调试提示符(转入运行态)时执行的操作。
{ 调试命令:设置一个操作显示调试提示符前执行的操作。
{{ 调试命令:设置一个操作显示调试提示符前执行的操作。
注:上述Perl语句和调试命令均可输入多行,行尾以/转义。
!number:重新执行以前第number次执行的调试命令。
!-number:重新执行现在以前number次执行的调试命令。
!模式:重新执行以前执行过的与模式匹配的调试命令。
!!命令:不退出调试器执行一个shell命令。
H-number:显示以前执行的number条调试命令。如果省略number,则显示所有执行过的
调试命令。
R:重新启动正在调试的程序。
q或^D:退出调试器。
|调试命令:将调试命令的输出分页显示。
||调试命令:类似|调试命令,适于有大量输出的调试命令,例如:|V main。
= 别名 值:给某个调试命令一个别名,例如:= quit q。
所有未识别的命令:当作插入的一条Perl语句执行。(使用eval)
Perl调试器的功能还有很多,可以设置很多选项来定制调试器的环境,它本身也是用
Perl开发的,并且Perl发布中还有接口让你能开发其它的Perl调试器。如果要用Perl开发大
的项目,有必要详细了解这些细节。使用调试器和设置调试器选项的例子请参考Perl发布中
关于perldebug的文档。

 

 

如何调试perl脚本

perl是一门非常强大的文本处理语言,之前在写perl脚本时,基本上就用Notepad++和print解决了代码编辑和调试的问题。Notepad++作为编辑器其实是一个相当不错的选择了,对perl的代码高亮做得相当漂亮,喜欢的话还能自己扩展;但是对于调试这一块,虽然也用这种土办法写出上千行的能工作的脚本,但老是用print查看结果总不是个办法。

研究了一下,发现两个不错的工具:

Komodo IDE

这是一个由ActiveState发布的针对动态语言的跨平台的集成开发环境。

所谓跨平台,其支持所谓Mac,Linux,Windows;

所谓集成开发环境,其支持代码编辑与调试

所谓动态语言,其除了支持perl,还支持狂多其他动态语言,如python,Ruby,PHP等等。

image

熟悉Visual Studio的同学可能会觉得很面熟。

详细说明可以参考其官方网站:https://www.activestate.com/komodo/

下载地址是:https://www.activestate.com/activeperl_pro_studio/downloads/

这的确是一个非常强大的工具,但是295$的价钱实在拒人于千里。21天的试用期到了,你的脚本还没完成,怎么办?

一般来说,每一个成功的商业软件背后,都会有一个好用(至少是可用)的免费软件。对于调试perl,我们至少还是另外一个选择:

Notepad++ & ptkdb

N++是个Windows下比较好用也比较有名的编辑器了,这里不再赘述,不熟悉的同学可以参考这里

当然,您要喜欢Komodo IDE的风格,它们提供了一个免费的Komodo Edit.

编辑器有了,调试器的任务就由ptkdb承担了:

ptkdb is a free/open source debugger for Perl with graphical user interface (GUI) based on Perk/Tk.
ptkdb is able to run on almost any operating system.

免费,跨平台,有GUI,应该是可以满足我们的要求了。

image  <image

当然,其界面美观度和可操控性都没有Komodo IDE来的好,但是知足吧,有这么一个免费的工具用,已经很不错了。

 

 下面介绍一下如何配打造这套"土IDE"

  1. 安装perl
    对于windows下的用户,可以从activestate网站下载最新的perl安装包:https://www.activestate.com/activeperl/,注意安装的时候路径名不要太长,也不能有空格。
     
  2. 安装tk
    tk是一个图形界面库,是由tcl引到perl中来的,ptkdb依赖于此GUI库显示界面。可以直接在cmd窗口:
    ppm install tk
  3. 安装ptkdb
    安装命令为:
    ppm install devel::ptkdb
    如果用此命令安装失败的话,我们需要手动下载并将模块解压到:C:\Perl\Lib\Devel,当然,请把C:\Perl替换为你的安装路径。

  4. 与Notepad++的集成
    至此,如果你想调试某个script的话,需要:
    perl -d:ptkdb test.pl
    但既然我们在Notepad++中开发脚本,而Notepad++提供了与外部工具集成的机制,我们就可以非常方便的执行一个菜单命令来调试当前的脚本:
    image
    输入命令:
    Perl.exe -d:ptkdb "$(FULL_CURRENT_PATH)"

    然后save为一个run菜单命令,一切就ok了。

突然间有自己写个perl IDE的冲动~~~

转载于:https://my.oschina.net/alphajay/blog/52172

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值