Subject: | Getting Win10 popup "Perl Interpreter has stopped working" on 5.24. |
Date: | Tue, 7 Feb 2017 09:06:30 -0700 |
To: | <bug-Perl-Dist-Strawberry [...] rt.cpan.org> |
From: | "Jack Burness" <Jack [...] Byrness.com> |
We have a number of old perl scripts that have been working fine. They now
maybe get run once or twice a year to process many text files.
One of the old scripts needed a minor tweak so I did it, and I started
getting the pop ups. Exception faults.
Faulting application name: perl.exe, version: 5.24.0.1, time stamp: 0x
+57323a0d
Faulting module name: perl524.dll, version: 0.0.0.0, time stamp: 0x573
+239d2
Exception code: 0xc0000005
Fault offset: 0x000000000007a3ee
Faulting process id: 0x3d18
Faulting application start time: 0x01d27b7a00d0b9b8
Faulting application path: C:\StrawberryPerl\perl\bin\perl.exe
Faulting module path: C:\StrawberryPerl\perl\bin\perl524.dll
Report Id: 8e19886c-5bf8-4d4f-aef1-84a7b8e365aa
Faulting package full name:
Faulting package-relative application ID:
I reported this on Perl Monks (I won't repeat it all here). I naturally
thought it might be something I've done.
1181096
Re^2: Win10: Getting popup <http://perlmonks.org/?node_id=1181096> "Perl
Interpreter has stopped working"
4
2017-02-04 16:22
1180652
Win10: Getting popup <http://perlmonks.org/?node_id=1180652> "Perl
Interpreter has stopped working"
However, another old script just stopped working in the same manner (an
exception fault). In addition, I tried my original, unmodified script and
it would not work.
What I did was to back down the Strawberry Perl version to 5.18.2.1 and all
three of the old scripts worked like they used to without the fault.
Unfortunately these scripts are very large, old style perl scripts and
proprietary and I can't send them to you. However, as you can see from the
Perl Monks report there apparently is no spot where you can clearly locate
the problem.
I'm thinking that someplace internally a pointer or reference is being
clobbered, and not showing up until later on. Lots of modules are being
used, under strict and warnings.
use Getopt::Long; ## Provides command line option parsing
use POSIX (); ## Use the POSIX library, but don't import any symbols
use File::Find;
use File::Copy;
use Cwd;
use Cwd qw(realpath);
use IO::Handle;
use English;
use File::Basename;
use File::Copy;
use Time::HiRes;
use Time::Local;
use File::Compare;
use Encode;
use Scalar::Util qw(looks_like_number);
use Regexp::Assemble;
use Win32::API; # For creating the mklink.
use Errno;
use Time::HiRes;
use File::stat;
use Win32::File;
use Win32API::File qw( :ALL );
As a side note, after the original Perl Monks report I upgraded to 5.24.1.1
to see if that made any difference, and it didn't.
Thanks
Jack