免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Perl篇:常用調(diào)試命令

Perl篇:常用調(diào)試命令

  本文所用到的Perl調(diào)試器為Perl解釋器本身,可以通過(guò)-d開關(guān)打開調(diào)試功能。本文不會(huì)將涵蓋所有的調(diào)試命令,只會(huì)解釋一些我們常用的調(diào)試命令,希望對(duì)熱愛(ài)Perl的朋友有所幫助。

    打開調(diào)試開關(guān)

      Perl是解釋型語(yǔ)言,運(yùn)行一個(gè)Perl腳本,可以通過(guò)在命令行中敲入形如 Perl Test.pl 的命令直接解釋執(zhí)行。如果想調(diào)試我們的腳本程序,可以加上-d選項(xiàng),命令為perl -d Test.pl,回車后程序會(huì)停在DB<1>處,如下圖所示:     

     

           

        從上圖看出程序執(zhí)行到主(main)程序的第二行(Test.pl 2)     

 

     插入/查看/刪除斷點(diǎn)       

     插入斷點(diǎn)可以使用b命令,命令格式為:b 行號(hào)/函數(shù)名 條件,在上圖中DB<1>處即可設(shè)置斷點(diǎn),如下圖所示:    

      

              在子過(guò)程SetInitValue處設(shè)置了斷點(diǎn)      

    

     查看設(shè)置的斷點(diǎn)使用L命令,注意是大寫,小寫是顯示尚未執(zhí)行到的代碼的部分內(nèi)容,如下圖所示:     

     

                    斷點(diǎn)設(shè)置在21行處      

 

     刪除設(shè)置的斷點(diǎn)請(qǐng)使用B命令,該命令格式為:B 行號(hào)| *,可以指定行號(hào)來(lái)刪除斷點(diǎn)或者使用通配符*來(lái)刪除所有的斷點(diǎn),如下圖所示:

    

                     刪除21行處的斷點(diǎn)        

 

     增加/查看/刪除監(jiān)視  

     添加監(jiān)視對(duì)于調(diào)試程序非常重要,本示例腳本中定義了一個(gè)名叫$val的變量,初始值為1,在SetInitValue函數(shù)中修改值為12。通過(guò)對(duì)其添加監(jiān)視,來(lái)理解Perl中怎么增減刪除監(jiān)視的

     添加一個(gè)$val==1表達(dá)式的監(jiān)視,命令為w $val==1,如下圖所示:    

    

                添加對(duì)表達(dá)式的一個(gè)監(jiān)視    

 

     查看當(dāng)前表達(dá)式的值可以使用p命令,格式為p expr,查看$val==1的當(dāng)前表達(dá)式值命令為:p $val==1,如下圖所示:    

     

   

                 當(dāng)前表達(dá)式值為1,即true

    

     刪除監(jiān)視可使用W(大寫字母)命令,格式為:W expr|*,可以刪除指定的表達(dá)式或者使用通配符*刪除所有的監(jiān)視值,如下圖所示:

     

 

                 刪除對(duì)表達(dá)式$val==1的監(jiān)視               

 

     步入執(zhí)行(Step Into)          

     步入執(zhí)行即單步調(diào)試中,碰到子過(guò)程會(huì)進(jìn)入子過(guò)程中執(zhí)行,命令為s,如下圖所示:

     

           步入執(zhí)行,進(jìn)入到SetInitValue子過(guò)程中  

 

     步出執(zhí)行(Step Out)

     步出執(zhí)行及單步調(diào)試中,遇到調(diào)用其他子過(guò)程的時(shí)候,不會(huì)進(jìn)入子過(guò)程中,而是直接執(zhí)行該子過(guò)程的其余行,然后將控制權(quán)返回給子過(guò)程調(diào)用者。示例程序在SetInitValue子過(guò)程中調(diào)用了AddRet子過(guò)程,通過(guò)下圖可以看出其中的區(qū)別:

      

   

              示例程序部分代碼             

      

         

   

                      調(diào)試程序到SetInitValue子過(guò)程調(diào)用AddRet子過(guò)程處                

        

       

 

                        使用s命令會(huì)步入到AddRet子過(guò)程中

                

       

       

                    使用n命令直接執(zhí)行完AddRet后返回

 

     跳出執(zhí)行(Return from subroutine)

     這個(gè)命令其實(shí)比較有用,在簡(jiǎn)單的程序中或許感覺(jué)不出來(lái)。但是當(dāng)你調(diào)試一個(gè)大型的perl程序的時(shí)候,你會(huì)發(fā)現(xiàn)你所調(diào)試的程序往往引用了很多的其他自定義的或者第三方模塊,并且調(diào)試的程序可能會(huì)頻繁的進(jìn)入這些模塊代碼中,為了節(jié)省時(shí)間與方便,我們更多會(huì)選擇跳出命令選項(xiàng)直接從這個(gè)模塊或者當(dāng)期陷入的子過(guò)程中跳出。

其命令為r,我們?cè)谏鲜隼又衧命令跳入AddRet子過(guò)程的基礎(chǔ)上,使用r命令返回,如下圖所示:  

        

 

                        使用r命令從AddRet子過(guò)程直接跳出                      

 

    退出調(diào)試 

      退出調(diào)試使用命令q,如下圖所示:     

       

  

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用gdb調(diào)試C與C++程序
VFP_第2章 VF語(yǔ)言基礎(chǔ)
xcode debug gdb命令
VBA(VBE)中一些調(diào)試的技巧
VC程序調(diào)試技術(shù)--遙遠(yuǎn)的地平線
除錯(cuò)專家---程序調(diào)試的利器GDB
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服