1

お客様の Windows マシンで perl プログラムを起動するとクラッシュします。さらにテストを行ったところ、提供されている perl ディストリビューションでは、単純な「hello world」スクリプトが機能しますが、次の行が含まれていると機能しなくなることが示されています。

use Win32::TieRegistry(Delimiter=>'\\');

ゼロ ポインタにアクセスすると、Access Violation でクラッシュします。スタックはregistry.dllを指しています。

この問題をトラブルシューティングする方法はありますか? Google検索で何も見つかりませんでした。私の環境では再現できません。

4

1 に答える 1

1

使用しているperlのバージョンを教えてください。ActivestateまたはStrawberryPerlですか?

アクセス違反は通常、perl以外のコードのプログラミングエラーです。エラーが含まれているregistry.dllのようです。それを追跡するには、おそらくソースコードやデバッガーが必要になります。私は、registry.dllがperlの一部として提供されるdllであると想定しています(つまり、Win32::TieRegistryまたはWin32API::RegistryのXS/Cコード部分であり、Win32 :: TieRegistryによって使用されます)。この仮定を検証するために、registry.dllへのフルパスを提供できますか?アクセス違反ダイアログボックスに表示されると思います。

于 2010-04-29T09:00:38.457 に答える