perl 调试命令的相关知识小结_perl

缺省的Perl调试器就是perl解释器本身,另外还有图形界面的调试器。
由于在开发程序时一般都使用telnet访问服务器,因此本文主要为大家介绍下缺省的命令行调试器的用法。

用-d命令行选项启动Perl解释器,例如:perl-dtest.pl即进入Perl调试器的交互界面。

调试命令列表:(所有命令都在调试提示符下顶格输入,命令大小写有关)
h:显示调试器的帮助信息。
|h:以分页形式显示调试器的帮助信息。
hh:显示一个压缩的帮助信息。
h调试命令:显示某个调试命令的帮助。

Perl调试器用法中p表达式:显示变量或表达式的值,不显示复杂变量嵌入的结构和数据。

x表达式:显示变量或表达式的值,对较为复杂的变量,以一种可读形式显示嵌入的结构和数据。

V包名变量名列表:显示指定包内的所有(或部分)变量的值。(缺省的包名为main)

X变量名列表:显示当前包内所有(或部分)变量的值。

注:Perl调试器用法中V、X命令中的变量名列表以空格分隔且变量名前应去掉$、@或%

T:程序的调用栈回退一级。

s表达式:单步执行,进入子函数。(stepinto)如果提供一个表达式并且表达式中包括函数调用,则单步进入该函数内。

n表达式:单步执行,越过子函数。(stepover)

c行号/函数名:执行到某一行或某一个函数。

l:显示未执行的一窗(一屏)文件内容。

lmin-max:显示第min到第max行的文件内容。

l行号:显示指定行的内容。

l函数名:显示指定函数的一窗(一屏)文件内容。

w行号:显示某行周围一窗(一屏)文件内容。

f文件名:切换到另一个文件。

/模式:在当前文件中向前(文件尾)查找匹配的字符串。

?模式:在当前文件中向后(文件头)查找匹配的字符串。

L:显示所有断点和附加操作。

S模式:显示匹配(或不匹配,在模式前加!)的函数名。

t:切换跟踪模式。

t表达式:跟踪执行表达式过程。

b行号条件:在某一行设置一个断点,当程序执行到该行并且条件满足时,产生中断。

Perl调试器用法中b函数名条件:在某函数上设置一个断点,当程序执行到该函数并且条件满足时,产生中断。

bload文件名:在某个文件的第一个可执行语句上设置一个断点。

d行号:删除某一行的断点。

D:删除所有断点。

a行号命令:给程序的某一行加一个附加操作。在执行该行语句前先执行附加的操作。

A:删除所有已安装的附加操作。

W表达式:增加一个监视项。

W:删除所有监视项。

O选项名?:查询调试器可选项的值。

O选项名=选项值:设置调试器可选项的值。

ltPerl语句:设置一个操作显示调试提示符前执行的操作。

ltltPerl语句:增加一个显示调试提示符前执行的操作。

gtPerl语句:设置一个离开调试提示符(转入运行态)时执行的操作。

gtgtPerl语句:增加一个离开调试提示符(转入运行态)时执行的操作。

{调试命令:设置一个操作显示调试提示符前执行的操作。

{{调试命令:设置一个操作显示调试提示符前执行的操作。

注:Perl调试器用法中上述Perl语句和调试命令均可输入多行,行尾以\转义。

!number:重新执行以前第number次执行的调试命令。

!-number:重新执行现在以前number次执行的调试命令。

!模式:重新执行以前执行过的与模式匹配的调试命令。

!!命令:不退出调试器执行一个shell命令。

H-number:显示以前执行的number条调试命令。如果省略number,则显示所有执行过的
调试命令。

R:重新启动正在调试的程序。

q或^D:退出调试器。

|调试命令:将调试命令的输出分页显示。

||调试命令:类似|调试命令,适于有大量输出的调试命令,例如:|Vmain。

=别名值:给某个调试命令一个别名,例如:=quitq。所有未识别的命令:当作插入的一条Perl语句执行。(使用eval)

Perl调试器用法还有很多,可以设置很多选项来定制调试器的环境,它本身也是用Perl开发的,并且Perl发布中还有接口让你能开发其它的Perl调试器。
如果要用Perl开发大的项目,有必要详细了解这些细节。
使用调试器和设置调试器选项的例子请参考Perl发布中关于perldebug的文档。

时间: 2024-10-31 12:18:02

perl 调试命令的相关知识小结_perl的相关文章

JS闭包、作用域链、垃圾回收、内存泄露相关知识小结_javascript技巧

补充: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 闭包的特性 闭包有三个特性: 1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收 闭包的定义及其优缺点 闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 闭包的缺点就是常驻内存,会增大内存使用量,使用不当很容易造成内存泄露. 闭包是javascript

java中数组的相关知识小结(推荐)_java

1.  2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages;     ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[]ags;    ags=new int{1,2,3,4};    或者   int[]ags=new int{1,2,3,4}; 3.java不支持不同类型的重名数组 4.java中数组的循环赋值 package dierge; public class Shuzu { public sta

C++中指针的数据类型和运算相关知识小结_C 语言

C++有关指针的数据类型和指针运算的小结 前面已用过一些指针运算(如p++,p+i等),现在把全部的指针运算列出如下. 1) 指针变量加/减 一个整数 例如:p++,p--,p+i,p-i,p+-i,p-=i等. C++规定,一个指针变量加/减一个整数是将该指针变量的原值(是一个地址)和它指向的变量所占用的内存单元字节数相加或相减.如p+i代表这样的地址计算:p+i*d,d为p所指向的变量单元所占用的字节数.这样才能保证p+i指向p下面的第i个元素. 2) 指针变量赋值 将一个变量地址赋给一个指

perl引用的相关知识分享_perl

为何使用引用? 在perl4中,hash表中的value字段只能是scalar,而不能是list,这对于有些情况是很不方便的,比如有下面的数据:Chicago, USAFrankfurt, GermanyBerlin, GermanyWashington, USAHelsinki, FinlandNew York, USA 我们想要按国家将城市分类,每个国家后面对应城市列表,如果用perl4来做,必须将城市列表组合成字符串才行,如果用perl5就可以用引用来做,有了引用,就可以构造复杂的hash

Perl一句话命令行编程中常用参数总结_perl

工作中的线上环境有很多的perl命令行的类似一句话的命令,今天总结下perl的命令行编程的一些东西. -e 后面紧跟着引号里面的字符串是要执行的命令: 复制代码 代码如下: king@king:~$ perl -e 'print "hello world \n"' hello world 如果是多个命令就可以使用多个-e,这里是不是想到了sed呢?但是要注意的是中间的哪个";". 复制代码 代码如下: king@king:~$ perl -e 'print &quo

Android签名知识小结_Android

一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

Android签名知识小结

一.为什么要签名 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换. APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉. 这样签名其实也是开发者的身份标识.交易中抵赖等事情发生时,签名可以防止抵赖的发生. 二.

计算机网络与路由器故障诊断的相关知识

路由器故障诊断是一门综合性技术,涉及网络技术的各个面.下面,我们就来简单回顾一下网络和路由器的基本概念. 一.计算机网络 计算机网络的发展,导致网络之间各种形式的连接.计算机网络按其计算机分布范围通常被分为局域网和广域网.广域网覆盖地理范围较大,如校园.城市之间.乃至全球;局域网覆盖地理范围较小,一般在数米到数十公里之间. 计算机网络是由计算机集合加通信设施组成的系统,即利用各种通信手段,把地理上分散的计算机连在一起,达到相互通信而且共享软件.硬件和数据等资源的系统. 二.因特网 采用统一协议实

MySql存储过程学习知识小结_Mysql

什么是存储过程: 存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了. 存储过程的好处: 1.由于数据库执行动作时,是先编译后执行的.然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高. 2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率. 3.通过存储过程能够使没有权限的