diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-12-20 13:31:31 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-12-20 13:31:31 +0100 |
commit | 194e3374b89b8b2dec6296923877304bdb5c6ae2 (patch) | |
tree | 4d256ef2b61133dd309bafcd82710fd2f50c83f4 | |
parent | 769f66216504cd882ac7b6bdfa0dd1ff26f3efe5 (diff) |
Scan /proc/<pid>/cmdline for GC roots
-rwxr-xr-x | scripts/find-runtime-roots.pl.in | 12 |
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; |