http://developer.51cto.com/art/201007/213719.htm
http://www.ibm.com/developerworks/cn/linux/sdk/perl/culture-4/index.html
http://www.sdsc.edu/~moreland/courses/IntroPerl/docs/manual/pod/perldebug.html#NAME
預設的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的文檔。