小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 閑來看看 2011-09-14

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

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

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

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

                 

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

 

     插入/查看/刪除斷點       

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

      

              在子過程SetInitValue處設(shè)置了斷點      

    

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

     

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

 

     刪除設(shè)置的斷點請使用B命令,該命令格式為:B 行號| *,可以指定行號來刪除斷點或者使用通配符*來刪除所有的斷點,如下圖所示:

    

                     刪除21行處的斷點        

 

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

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

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

    

                添加對表達式的一個監(jiān)視    

 

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

        

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

    

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

      

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

 

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

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

     

           步入執(zhí)行,進入到SetInitValue子過程中  

 

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

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

          

              示例程序部分代碼             

      

            

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

        

        

                        使用s命令會步入到AddRet子過程中

                

              

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

 

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

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

其命令為r,我們在上述例子中s命令跳入AddRet子過程的基礎(chǔ)上,使用r命令返回,如下圖所示:  

         

                        使用r命令從AddRet子過程直接跳出                      

 

    退出調(diào)試 

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

         

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多