目錄

名稱

Test2::EventFacet::Trace - 事件的偵錯資訊

說明

Test2::API::Context 物件,以及所有 Test2::Event 類型都需要存取有關它們在哪裡建立的資訊。此物件表示該資訊。

語法

use Test2::EventFacet::Trace;

my $trace = Test2::EventFacet::Trace->new(
    frame => [$package, $file, $line, $subname],
);

切面欄位

$string = $trace->{details}
$string = $trace->details()

用作自訂追蹤訊息,呼叫 $trace->debug 時,將會用於取代 at <FILE> line <LINE>

$frame = $trace->{frame}
$frame = $trace->frame()

取得呼叫框架陣列參考。

[$package, $file, $line, $subname]
$int = $trace->{pid}
$int = $trace->pid()

事件產生的程序 ID。

$int = $trace->{tid}
$int = $trace->tid()

事件產生的執行緒 ID。

$id = $trace->{cid}
$id = $trace->cid()

用於建立事件的內容 ID。

$uuid = $trace->{uuid}
$uuid = $trace->uuid()

用於建立事件的內容 UUID。(如果已啟用 uuid 標記)

($pkg, $file, $line, $subname) = $trace->call

取得基本呼叫資訊,作為清單。

@caller = $trace->full_call

取得完整的呼叫者 (N) 結果。

$warning_bits = $trace->warning_bits

從完整的呼叫者資訊取得索引 9。這是 warnings_bits 欄位。

此值的意義在不同的 perl 版本,甚至程序中都是不可攜帶的。然而,它可以在產生它的程序中用於在新的範圍中複製警告設定。

eval <<EOT;
BEGIN { ${^WARNING_BITS} = $trace->warning_bits };
... context's warning settings apply here ...
EOT

這些欄位並非總是會由工具正確設定。這些欄位大多數已由 Test2::EventFacet::Hub 外觀標示為不建議使用。這些欄位並非必要,而且可能只反映事件建立時目前的 hub,這不一定與事件傳送的 hub 相同。

有些工具確實會正確設定這些欄位,但您不能總是依賴它。請改用「hubs」外觀標示清單。

$hid = $trace->{hid}
$hid = $trace->hid()

事件建立時目前的 hub ID。

$huuid = $trace->{huuid}
$huuid = $trace->huuid()

事件建立時目前的 hub UUID。(如果已啟用 uuid 標記)

$int = $trace->{nested}
$int = $trace->nested()

事件巢狀的深度。

$bool = $trace->{buffered}
$bool = $trace->buffered()

如果事件已暫存且未傳送至格式化程式,且與父層無關(當 nested 為 0undef 時,不應設定此值),則為 True。

方法

注意:所有切面框架也是方法。

$trace->set_detail($msg)
$msg = $trace->detail

用於取得/設定自訂追蹤訊息,在呼叫 $trace->debug 時,此訊息將用於取代 at <FILE> line <LINE>

detail()details 切面欄位的別名,用於向後相容。

$str = $trace->debug

通常會傳回字串 at <FILE> line <LINE>。如果設定 detail,則會傳回其值。

$trace->alert($MESSAGE)

在框架中發出警告(應報告錯誤的檔案名稱和行號)。

$trace->throw($MESSAGE)

在框架中擲回例外(應報告錯誤的檔案名稱和行號)。

($package, $file, $line, $subname) = $trace->call()

取得偵錯資訊的呼叫者詳細資料。應在此處報告錯誤。

$pkg = $trace->package

取得偵錯資訊套件。

$file = $trace->file

取得偵錯資訊檔案名稱。

$line = $trace->line

取得偵錯資訊行號。

$subname = $trace->subname

取得偵錯資訊子常式名稱。

$sig = trace->signature

取得識別此追蹤的簽章字串。這用於檢查多個事件是否相關。簽章包含 pid、tid、檔案、行號和 cid。

來源

Test2 的原始碼存放庫可以在 http://github.com/Test-More/test-more/ 找到。

維護人員

Chad Granum <exodist@cpan.org>

作者

Chad Granum <exodist@cpan.org>

版權

版權所有 2020 Chad Granum <exodist@cpan.org>。

此程式為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

請參閱 http://dev.perl.org/licenses/