diff options
-rw-r--r-- | lib/Devel/Mwrap/Rproxy.pm | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Devel/Mwrap/Rproxy.pm b/lib/Devel/Mwrap/Rproxy.pm index 19fff59..b2bee8c 100644 --- a/lib/Devel/Mwrap/Rproxy.pm +++ b/lib/Devel/Mwrap/Rproxy.pm @@ -133,15 +133,17 @@ sub new { my ($cls, $exe) = @_; pipe(my ($rd, $_wr)) or die "pipe: $!"; pipe(my ($_rd, $wr)) or die "pipe: $!"; - my $addr2line = $ENV{ADDR2LINE} // 'addr2line'; + # -f/--functions needs -p/--pretty-print to go with it + my $addr2line = $ENV{ADDR2LINE} // 'addr2line -i -p -f'; + my @addr2line = split(/\s+/, $addr2line); my $pid = fork // die "fork: $!"; if ($pid == 0) { close $rd; close $wr; open STDIN, '<&', $_rd or die "STDIN: $!"; open STDOUT, '>&', $_wr or die "STDOUT: $!"; - exec $addr2line, '-e', $exe; - die "exec $addr2line -e $exe: $!"; + exec @addr2line, '-e', $exe; + die "exec @addr2line -e $exe: $!"; } $_rd = $_wr = undef; $wr->autoflush(1); |