Yet another module giving me heck under perl5.10/mod_perl2/win32.
If I put Devel::Cover right in the config file, it verbosely explains threads are not supported, and won't start. If I put 'use Devel::Cover' into a module (BEGIN block or not) that gets loaded via PerlModule or PerlLoadModule, or even just called from my scripts, it doesn't seem to do anything besides create an empty cover_db directory, and when you stop the server, says:
Not a CODE reference.
END failed--call queue aborted.
This module is said to work on win32 and mod_perl2, but maybe not both at the same time. I followed the directions and added the lines to my .conf file, but nothing seemed different after a restart/requestes/restart cycle. No file was output anywhere that I could find. So I tried NYTPROF=file=C:\... with a few different path formats, most of which generated errors about the filename I had given (minus the C:) not being a supported as a parameter (I guess the : set it off). When I tried just a filename, I got:
Invalid command 'MaxClients', perhaps misspelled or defined by a module not included in the server configuration
So I took that out, and then it didn't seem to be picking up the PerlPassEnv at all, so finally the closest I've gotten is this:
...which generates the .out file in Apache2.2/bin or Apache2.2/, depending on I'm not sure what, lately it's not been the /bin one, and immediately crashes when I try to serve up any perl script with this error (same addresses every time, too):
[Tue Jan 27 12:10:25 2009] [notice] Child 7528: Starting thread to listen on port ....
Free to wrong pool 8dc488 not 843918 at C:/Perl5.10/site/lib/ModPerl/Registry.pm line 26.
[Tue Jan 27 12:10:44 2009] [notice] Parent: child process exited with status 3221225477 -- Restarting.
Any hints? This is on Windows Server 2003 SP 2, ActiveState Perl 5.10 build 1004, mod_perl 2.04, Apache 2.2.11. The docs could be a bit less Linux-centric, or at least spell things out better for us slow win32 users.
I'd really like to use NYTProf, it sounds amazing.
I can't seem to get this to work under win32, at least not with DBD::Pg. I get:
[Thu Jan 22 14:00:25 2009] [error] Can't use an undefined value as an ARRAY reference at C:/Perl5.10/site/lib/DBD/Pg.pm line 818.\nBEGIN failed--compilation aborted at E:\\dev\\perlsitelib/Planecore.pm line 481.\nCompilation failed in require at E:/dev/walkthrough.pl line 4.\nBEGIN failed--compilation aborted at E:/dev/walkthrough.pl line 4.\n
Use of uninitialized value $line in scalar chomp at C:/Perl5.10/site/lib/Apache/SmallProf.pm line 196.
Use of uninitialized value $line in printf at C:/Perl5.10/site/lib/Apache/SmallProf.pm line 203.
...and then tonnes of repetitions of those last two warnings, with one of these:
The code for E:/dev/walkthrough.pl is not in the symbol table. at C:/Perl5.10/site/lib/Apache/SmallProf.pm line 209.
...near the end of the repetitions, and at the very end:
can't open C:/Program Files/Apache Software Foundation/Apache2.2/logs/smallprof/C:/Program Files/Apache Software Foundation/Apache2.2/logs/smallprof/walkthrough-.\.prof Invalid argument at C:/Perl5.10/site/lib/Apache/SmallProf.pm line 191.
...and then Apache restarts itself.
I modified SmallProf to regex any :: into -, and take care of other no-nos for win32 filenames. That and starting the server with -X, which I'm not sure I can (or how to, anyway) do if I run it as a service, and still, I cannot get it past this error:
[Thu Jan 22 16:01:36 2009] [error] Can't use an undefined value as an ARRAY reference at C:/Perl5.10/site/lib/DBD/Pg.pm line 818. ... [from walkthrough.pl, etc.]
...which I'm assuming is the cause of a bunch of lines identical to this one:
The code for E:/dev/walkthrough.pl is not in the symbol table. at C:/Perl5.10/site/lib/Apache/SmallProf.pm line 216.