利用 Ecplise 插件 EPIC 调试 Perl 程序

简介: 这篇文章将详细介绍 EPIC 组件的安装,EPIC 编辑环境,调试运行环境,着重介绍如何使用 EPIC 来快速、简便、准确地调试 Perl 语言程序,包括对于 Perl 程序的单步执行,断点用法,局部、全局变量实时监控,子函数执行监控,错误以及警告信息实时显示等等内容。利用 EPIC 强大编辑以及调试功能,可以将 Perl 语言适合花短时间完成程序的特点发挥地淋漓尽致,为 tester 的自动化测试脚本提供更加人性化的设计、调试环境。

 

 

引言

Perl 语言是众所周知的一种编程语言,被广泛地用于日常生活的方方面面,它从最早的文本处理语言开始,已经发展成为一种非常复杂得,通用得编程语言。因为 Perl 几乎可以在任何地方运行,所以 Perl 可以说是当今最具有移植性得编程环境。Perl 擅长写那些需要在短时间内完成的程序,对于那些需要数十个程序员,花费数年的程序,Perl 也能很好地胜任,当然,更多的情况是你将写那些从开始构思到实际测试代码只需几十分钟的程序,Perl 被设计为:90% 处理文本,10% 针对其它情况。Perl 语言的这一系列特点,为自动化测试脚本的实现提供了无与伦比编程环境,可以说 perl 语言是自动化测试脚本的‘温床’。作为一名 tester,利用 perl 语言编写自动化测试脚本是一件酣畅淋漓得快事,但是对于编写好的 perl 程序脚本,目前有个问题摆在我们面前,那就是 Perl 语言程序的调试实在是一个令人崩溃的过程,许多 Perl 程序的语法检查以及运行中间结果都需要依靠若干没有实际用途的打印语句来实现,基于这一特点,Perl 程序调试又被世人戏谑为‘死后验尸式调试’。面对 Perl 语言的这一问题,基于 Eclipse 平台的插件 EPIC 诞生了,作为开源软件 Perl 语言的 IDE( 包括编辑器和调试器 )。可以应用于 windows, Linux 以及 Mac 平台。无论是 CGI 脚本还是复杂地拥有数百个模块的 perl 程序项目,它丰富的功能都可以为您提供快捷,便利的实时调试环境。

这篇文章将详细介绍 EPIC 组件的安装,EPIC 编辑环境,调试运行环境,着重介绍如何使用 EPIC 来快速,简便,准确地调试 Perl 语言程序,包括对于 Perl 程序的单步执行,断点用法,局部、全局变量实时监控,子函数执行监控,错误以及警告信息实时显示等等内容。利用 EPIC 强大编辑以及调试功能,可以将 Perl 语言适合花短时间完成程序的特点发挥的淋漓尽致。为 tester 的自动化测试脚本提供更加人性化的设计环境。

 

 

EPIC 安装功略

安装前准备

安装之前需要准备几个重要的组件:

  1. Perl 语言编译器

    版本要求是 5.8.X 或是 5.6.X,大多数 UNIX/LINUX 安装包都包括了 Perl 语言编译器的选装包,对于 Windows 平台,可以去指定网站下载相应的安装包 www.activestate.com

  2. Eclipse

    在安装 EPIC 插件之前,选择一个最新版本 Eclipse 进行安装是必不可少的步骤,

    对于 Eclipse 的版本最低要求是 version 3.1,可以从 [http://www.eclipse.org] 下

    载 Eclipse 安装包。

    由于 Eclipse 安装包不包括 Java Runtime Environment(JRE),为此,我们还需要安装

    Java 1.4.1 或是更高版本的 Java。

  3. PadWalker(全局变量跟踪器)

    这个模块不是必须要装的,它的功能就是在 Debug Perl 程序的过程中,监视全局变量的值。怎么样?不能实时监视全局变量的值是任何一个程序员无法忍受的‘减配’吧,为了发挥 EPIC 比较完整调试功能,千万不要拉下这个模块。可以从 CPAN (PadWalker 0.10) 下载这个包,如果是在 window 平台,可以从 EPIC homepage 下载该模块。

安装 EPIC

使用 Eclipse 软件的 Eclipse Update Manager 功能去安装 EPIC。

打开 Eclipse, 进入菜单 Help->Software and Updates ->Find and Install...

如图 1 所示:


图 1. EPIC 下载及安装
利用 Ecplise 插件 EPIC 调试 Perl 程序_第1张图片

选择“Search for new features to install” 选择 Next,

选择“Add Update Site... “,在弹出一个对话框中填写用户名和有效的 URL: http://e-p-i-c.sf.net/updates.,

如图 2 所示:


图 2. EPIC 下载网址
 

继续选择’ Next ’ , 直到完成。

安装 PadWalker(全局变量跟踪器)

  1. 下载适用于 Perl 5 .8.1 的 PadWalker 压缩软件包。
  2. 解压以后把文件拷贝到 perl 安装目录,比如 C:/Perl。

EPIC 提供了多功能的编辑器,可以方便用户编写 perl 程序,提供了语法高亮显示、语法即时检测、错误以及警告信息注释、Perldoc 查询、变量检查、模块检查、源码折叠等一系列功能,对于编写测试自动化脚本的工程师,书写脚本是整个测试工作的很麻烦的一部分,我们都希望有这个一个利器,能方便快捷地处理这些工作,很幸运,EPIC 帮我们实现了这一切。如图 3 所示:


图 3. EPIC 编辑对话框
 

配置 Perl 程序运行调试环境

创建工程并输入文件

  1. 创建一个新工程(也可以在一个已存在的工程中加入你自己的工程)
  2. 在菜单‘ File ’中选择‘ Import ’,当然,也可以新建文件,并用 EPIC 编辑器来编写相关 Perl 程序,对于 EPIC 编辑器,在上文有相关介绍。
  3. 从弹出的列表中选择‘ File System ’

如图 4 所示:


图 4. 选择将要导入的文件系统
 利用 Ecplise 插件 EPIC 调试 Perl 程序_第2张图片

4. 选择‘ Next ’

5. 在弹出的面板中,单击‘ Browse ’选择要输入文件所在的文件夹,输入文件将会出现在面板上,在此,单击文件前面的复选框,就可以选择要输入到工程中去的文件。如图 5 所示:


图 5. 导入文件
 

6 .单击‘ Finish ’完成当前工作。

配置 Perl 编译器运行环境

在 Eclipse 环境中,调用 Perl 语言编译器来运行调试工程文件,就必须做相应配置,单击菜单‘ project ’,选择‘ Properties ’,将上一步输入工程的文件的绝对路径填写到弹出面板右侧编辑区。如图 6 所示:


图 6.Include 文件路径
 

配置调试对话框

首先,对于选中的工程文件,在 EPIC 主界面上选择菜单‘ Run ‘,并在弹出下拉框中选择’ Open Debug Dialog ’,再修改如下配置(选择工程以及要调试的文件):

如图 7 所示:


图 7. 调试对话框配置 1
 利用 Ecplise 插件 EPIC 调试 Perl 程序_第3张图片

对于 Perl 程序的运行调试都需要添加 Program Argument,我们可以为新建项目增加 Argument,EPIC 插件也提供了这方面的接口,打开 Debug 对话框,并在项目中 argv items in “(x)= Arguments” 添加相应的 Argument。 如图 8 所示:


图 8. 调试对话框配置 2
 

EPIC 调试运行过程

任何程序的调试与运行都是密不可分的,从程序工程师的角度来看,一个程序从编写完毕到最后成功完成,都是一个运行、修改、调试、再运行、再修改、再调试。。。

的过程。EPIC 提供了完整的调试运行环境。

EPIC 运行程序

对于选中的工程文件,在 EPIC 主界面上选择菜单‘ Run ‘,并在弹出下拉框中选择’ Run ’,如图 9 所示:红线框住的区域表示程序的整个运行过程和结果都可以看到。


图 9. EPIC 运行程序界面
 

EPIC 调试程序(俗称‘ Debug ’程序)

相比较运行程序而言,这一过程显得复杂得多,这也是这篇文件的精髓所在,前面都是为这一步在做必要地铺垫。对于程序员而言,调试程序是不可避免的,通常将要调试的线程挂起,然后利用单步执行方式来实现对整个程序的一行一行代码地执行,同时,观察每一步运行的结果,以及掌握运行过程中变量的变化情况。

EPIC 提供了多种调试操作功能以方便用户实现在编程中的切实需求,包括单步执行、跳入子函数、跳出子函数、断点设置、断点取消、直接执行语句段直至断点位置等等。

  1. Step Over– 单步执行函数、循环 loop、或执行其他普通语句。正待执行的代码行在 EPIC 编辑器中会被高亮显示出来,此时,线程处于挂起状态,在 Debug 视图工具条中按下这个功能图标 ()(相应的快捷键是‘ F6 ’)后,该行语句将被执行,完毕后,将自动跳转到下一行待执行语句,并使其呈高亮显示状态,该线程继续挂起等待下一步指令。
  2. Step Into– 可以执行进入函数、循环 loop、或执行其他普通语句。在 Debug 视图工具条中按下这个功能图标 ()(相应的快捷键是‘ F5 ’),该功能类同上述‘ Step Over ’,不同之处在与:如果该语句中含有子函数,循环等结构,‘ Step Over ’是直接后台执行完这些子函数或是循环,并返回结果。但是‘ Step Into ’却会按执行栈的顺序执行方式,依次跳入子函数或循环提供单步执行的功能。
  3. Step Return– 这一功能是针对执行过程已经进入子函数后,可以从当前代码行开始直接后台执行完该子函数剩余代码并返回,不用再单步执行该子函数。在 Debug 视图工具条中按下这个功能图标 ()(相应的快捷键是‘ F7 ’)。

4. 如果要直接后台执行到最近的下一个程序断点位置可以使用快捷键‘ F8 ‘来实现这一功能。

在主界面中选择菜单‘ Run ‘ -> ’ Debug ’ , 就进入程序调试状态了,我们可以选择调试操作方

式,包括单步执行、跳到最近的下一个断点再执行,跳入子函数等等,针对这些操作过程中,

对于工程师来说,始终关注的都是整个程序的运转情况以及掌握每一步执行操作完成后相关变

量的变化情况,为此,我们有必要介绍一些视图,利用这些视图,我们可以更好的掌握程序的

调试状况,以利于下一步操作。

首先,进入调试界面接口,可以在主界面中选择:Window-> Show View ->Debug,在弹出来的

视图里,可以管理在工作区的正在被调试或是运行程序,它显示了一个工程框架、工作过程中

的程序运行状况等等。如图 10 所示:


图 10. EPIC 调试窗口
 利用 Ecplise 插件 EPIC 调试 Perl 程序_第4张图片

变量视图能够显示程序在运行过程中的变量的值以及其实时变化情况,这一功能对于调试工作来说是尤为重要的,变量是程序的‘血液‘,程序代码就是通过变量来连接的,掌握变量的情况,就是掌握整个程序的运行状况。

在变量视图里面,可以看到变量栈的框架结构,它显示变量的原始状态,包括结构体变量、哈希变量、list 变量或是对象等等。

全局变量(包括 Perl 内部变量)都有特定图标 , 标注,本地变量有特定图标 (如前文

介绍,本地变量必须是安装了 PadWalker 模块才能看见)。

如图 11 所示:


图 11. EPIC 调试窗口
 利用 Ecplise 插件 EPIC 调试 Perl 程序_第5张图片

断点视图可以显示该程序文件中所有的断点、它们的状态以及位置。在这个视图里,可以通过选择一个或断点,并激活对应断点的程序文本框,来设定、使之无效或是取消断点。

如图 12 所示:


图 12. EPIC 调试跟踪
 利用 Ecplise 插件 EPIC 调试 Perl 程序_第6张图片

总结

综上所述,我们已经看到了一个集编辑、编译、调试 Perl 程序为一体的图形化的工具,它解决了若干年来一直困扰着测试工作者的对于 Perl 语言编写自动化脚本‘调试难’的问题。它简洁明了、功能强大的编辑环境也给 Perl 语言编程者带来了世外桃源般得享受。最重要的是获取这一切,您都采取的是免费的方式,因为所有的组件都是开源的,这是一款非常值得推荐的软件工具。

参考资料

  • 有关 EPIC 的更多信息,请参考EPIC 主页
  • 访问 developerWorks Open source 专区获得丰富的 how-to 信息、工具和项目更新以及最受欢迎的文章和教程,帮助您用开放源码技术进行开发,并将它们与 IBM 产品结合使用。

原文地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-epic/

你可能感兴趣的:(eclipse,脚本,测试,perl,语言,编译器)