aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-12-20 13:31:31 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-12-20 13:31:31 +0100
commit194e3374b89b8b2dec6296923877304bdb5c6ae2 (patch)
tree4d256ef2b61133dd309bafcd82710fd2f50c83f4
parent769f66216504cd882ac7b6bdfa0dd1ff26f3efe5 (diff)
Scan /proc/<pid>/cmdline for GC roots
-rwxr-xr-xscripts/find-runtime-roots.pl.in12
1 files changed, 8 insertions, 4 deletions
diff --git a/scripts/find-runtime-roots.pl.in b/scripts/find-runtime-roots.pl.in
index e1a2dde55..2e04a635e 100755
--- a/scripts/find-runtime-roots.pl.in
+++ b/scripts/find-runtime-roots.pl.in
@@ -15,8 +15,6 @@ sub readProc {
my $process = "/proc/$name";
- #print STDERR "=== $process\n";
-
my $target;
print "$target\n" if $target = readlink "$process/exe";
print "$target\n" if $target = readlink "$process/cwd";
@@ -38,11 +36,17 @@ sub readProc {
}
# Get all store paths that appear in the environment of this process.
+ my $re = "\Q$Nix::Config::storeDir\E\/[0-9a-z]+[0-9a-zA-Z\+\-\._\?=]*";
eval {
my $env = Nix::Utils::readFile "$process/environ";
- my @matches = $env =~ /\Q$Nix::Config::storeDir\E\/[0-9a-z]+[0-9a-zA-Z\+\-\._\?=]*/g;
+ my @matches = $env =~ /$re/g;
print "$_\n" foreach @matches;
- }
+ };
+ eval {
+ my $cmdline = Nix::Utils::readFile "$process/cmdline";
+ my @matches = $cmdline =~ /$re/g;
+ print "$_\n" foreach @matches;
+ };
}
closedir DIR;