[英]Perl Debugger: Filehandle as Input
我有這個問題:我需要從外部腳本控制 perl 調試器。 通過研究,我發現了各種解決方案,但我不了解它們。 我未能正確設置 RemotePort 選項(編輯“.perldb”),這是我第一次嘗試,並沒有發現有關提供調試器從中獲取輸入的文件句柄的有用信息(通過某種方式設置@cmdfhs)我發現兩個選項都在這里: http : //search.cpan.org/~nwclark/perl-5.8.6/lib/perl5db.pl
如果您能告訴我如何提供調試器從中獲取輸入的文件句柄,或者您知道解釋此內容的鏈接,那就太好了?
這是一個使用RemotePort
設置它的簡單示例,對我來說似乎更容易:
使用RemotePort
的技巧是,在啟動要調試的腳本之前,必須有人在遠程端監聽。
只要您使用-d
啟動腳本,Perl 就會嘗試連接到RemotePort
。 因此,您必須事先讓某人在那里收聽,以確保初始連接成功。
這里我假設一些 Linux/Unix 變體,它安裝了netcat
實用程序。 在這個例子中,我們使用netcat
來等待傳入的連接,但你也可以使用任何你想要的東西,它能夠創建一個服務端口並在它和當前 TTY 之間混洗數據:
在終端 1 中:
# Use netcat to listen for incoming connections on port 9999
> nc -l -p 9999
在 2 號航站樓:
# Start perl with -d and request a RemotePort connection
> PERLDB_OPTS=RemotePort=127.0.0.1:9999 perl -d my_script.pl
一旦在終端 1 中執行此操作,您將看到如下內容:
Loading DB routines from perl5db.pl version 1.39_10
Editor support available.
Enter h or 'h h' for help, or 'man perldebug' for more help.
main::(my_script.pl:4):
DB<1>
你去吧..調試。
Devel::Trepan是一個類似 gdb 的調試器。 盡管它具有遠程控制,但您也可以在開始時使用選項--command
運行它,該選項將“源”(在 gdb 意義上)或運行一系列調試器命令。
要進入遠程控制,請使用--server
選項啟動調試器,或者在調試器內部使用“ 服務器”命令一次。
請參閱選項以獲取一開始可以提供的選項列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.