views:

51

answers:

1

Our perl program crashes when started on customer's Windows machine. Further tests shows that with the perl distribution we provide, a simple "hello world" script works, but breaks if it includes the line:

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

It crashes with Access Violation for accessing a zero pointer. The stack points to registry.dll.

Any idea how I can troubleshoot this problem? I didn't find anything about it in a google search, and can't recreate it in my environment.

+1  A: 

Hi,

Can you tell me what version of perl you are using? Is it Activestate or Strawberry Perl?

An access violation is usually a programming error in some non perl code. It looks like could be registry.dll that contains the error. In order to track it down you would probably need source code and/or debugger. I am assuming that the registry.dll is a dll that comes as part of perl (ie XS/C code part of Win32::TieRegistry or Win32API::Registry that is used by Win32::TieRegistry). To validate this assumption can you provide the full path to registry.dll? I think it will show it in the Access Violation dialog box.

This was probably because on old mismatching Perl version was installed on the machine. A colleague found a workaround to the problem, but I don't know exactly what it is. Thanks anyway.
splintor