Ich versuche, so etwas wie dieseWie kann man wissen, welche Codezeile ausgeführt wurde, wenn ein Signal empfangen wird
$SIG{ALRM} = sub {
print $line_number_when_alarm_went_off;
};
alarm 10;
# rest of the script
zu tun, ich bin mit ALRM
als Beispiel, werde ich ein anderes Ende mit Signal von außen zu töten, um es auszulösen. Gibt es eine nette Art, diese Art von Operation zu machen?
Ich habe einige langsame Skripte und manchmal würde Ich mag sie ein Signal senden zu wissen, wo der Code in diesem Moment ist.
Ich will das so unauffällig wie möglich machen, damit ich es packen könnte und es zu Legacy-Code hinzufügen.
Es klingt wie Sie Profilierung sind neu zu erfinden. Hast du [Devel :: NYTProf] (https://metacpan.org/pod/Devel::NYTProf) ausprobiert? – AKHolland
Rufen Sie einfach 'Carp :: cluck' im Signalhandler auf und holen Sie sich den gesamten Stack-Trace. – mob
gluck funktioniert auch. Ich hatte versucht, beichten vorher, aber das hat nicht funktioniert, kam mir nicht vor, um Gluckern zu versuchen. – Nullman