]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Don't enable dynamic libraries unloading at END time by default
authorVincent Pit <vince@profvince.com>
Tue, 14 Apr 2009 20:32:29 +0000 (22:32 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 14 Apr 2009 20:32:29 +0000 (22:32 +0200)
This makes the error stack traces unreadable because valgrind tries to resolve the symbol names after they were unloaded (and not when the error occurs).

lib/Test/Valgrind.pm

index 5f7414f8d7ad94a570709b1fb4cfc81edeaf2a78..46a86c6fe9509e4241f1f6577bab9956aed472a3 100644 (file)
@@ -273,8 +273,20 @@ sub import {
  });
 }
 
+=head1 VARIABLES
+
+=head2 C<$dl_unload>
+
+When set to true, all dynamic extensions that were loaded during the analysis will be unloaded at C<END> time by L<DynaLoader::dl_unload_file>.
+
+Since this obfuscates error stack traces, it's disabled by default.
+
+=cut
+
+our $dl_unload;
+
 END {
- if ($run and eval { require DynaLoader; 1 }) {
+ if ($dl_unload and $run and eval { require DynaLoader; 1 }) {
   my @rest;
   DynaLoader::dl_unload_file($_) or push @rest, $_ for @DynaLoader::dl_librefs;
   @DynaLoader::dl_librefs = @rest;