簡體   English   中英

Perl 調試器:文件句柄作為輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM