Quindi, è un po 'un caso semplice - ma se ho creato un riferimento circolare come questo:Trovare variabili 'Lost' (riferimenti circolari)
#!/usr/bin/perl
use strict;
use warnings;
{
my $thing;
my $otherthing;
$thing -> {otherthing} = \$otherthing;
$otherthing -> {thing} = \$thing;
}
creo una perdita di memoria - perché con il conteggio di riferimento , la memoria allocata qui non sarà mai liberata, nonostante non abbia alcun "punto di accesso" verso l'esterno.
Quindi, quello che mi chiedo - in questo tipo di scenario, c'è un modo in cui potrei, tramite il debug o simili, "riscoprire" queste variabili e ottenere di nuovo accesso ad esse?
Ipoteticamente sto pensando in un caso meno banale - hai un oggetto trapelato memoria, ma vorrebbe 'riprenderlo' di nuovo per vedere cosa c'è dentro, per dare un suggerimento su cosa c'era in detto oggetto e quindi dove stava iniziando il problema.
So che http://search.cpan.org/~lds/Devel-Cycle-1.10/lib/Devel/Cycle.pm e http://search.cpan.org/~ilyaz/Devel- Peek-0.96/Peek.pm aiutano entrambi con questi problemi, ma non li ho mai usati quando i varsono fuori portata e si "perdono", quindi non so se sono utili in questi casi. Vale la pena guardare – stevieb
Forse [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