所以,這是一個有點簡單化情況下 - 但如果我設置了這樣一個循環引用:尋找「丟失」的變量(循環引用)
#!/usr/bin/perl
use strict;
use warnings;
{
my $thing;
my $otherthing;
$thing -> {otherthing} = \$otherthing;
$otherthing -> {thing} = \$thing;
}
我創建了一個內存泄漏 - 因爲引用計數,這裏分配的內存將永遠不會被釋放,儘管沒有任何外部「接入點」。
所以我想知道 - 在這種情況下,有沒有什麼辦法我可以 - 通過調試或類似 - 「找回」這些變量並重新獲得對它們的訪問?
假設我正在考慮一個不太平凡的案例 - 你有一個內存泄漏的對象,但想'再次'看看它裏面有什麼,給出一個提示,因此問題開始的地方。
我知道http://search.cpan.org/~lds/Devel-Cycle-1.10/lib/Devel/Cycle.pm和http://search.cpan.org/~ilyaz/Devel- Peek-0.96/Peek.pm都可以幫助解決這些問題,但是當變量超出範圍並丟失時,我從未使用它們,因此我不知道它們在這些情況下是否有用。值得一看 – stevieb
也許[Devel :: LeakTrace :: Fast](https://metacpan.org/pod/Devel::LeakTrace::Fast)? – ThisSuitIsBlackNot
https://metacpan.org/pod/Devel:: Gladiator,https://metacpan.org/pod/Devel::MAT::Dumper,'pmat-explore-gtk' – melpomene