6

ここにある架空のモジュールのように、cpan (または外部) モジュールを使用しているとします。Stupid::CPAN::Module::OfSatan

package Stupid::CPAN::Module::OfSatan {
  BEGIN { $SIG{__DIE__} = sub { print STDERR "ERROR"; exit; }; }
}

コードの後半に、非常に無害なものがあります。

package main {
  eval { die 42 };
}

これにより、バグのあるシグナル ハンドラーがトリガーされます。Carp::Alwaysバグのあるシグナル ハンドラーが定義されている場所を知りたいので、insert a ,などの論理的な処理を行います。

package main {
  use Carp::Always;
  eval { die 42 };
}

Carp::Alwaysその後、バグのあるシグナルハンドラーをオーバーライドすると、コードが魔法のように機能します。バグのあるシグナル ハンドラーを導入するコードの場所をどのようにデバッグできますか?

4

1 に答える 1