Manual Reference Pages - SYS::TRACE (3)
Sys::Trace - Interface to system call tracing interfaces
my $trace = Sys::Trace->new(exec => [qw(ls foo)]);
$trace->start; # Returns a PID which you can watch
$trace->wait; # Alternatively call this to wait on the PID
my $result = $trace->results; # Returns a Sys::Trace::Results object
print $result->files(getcwd . "/"); # Should show an attempt to look at "foo"
# in the current directory (i.e. "ls
# foo", above)
Provides a way to programmatically run or trace a program and see the system
calls it makes.
This can be useful during testing as a way to ensure a particular file is
actually opened, or another hard to test interaction actually occurs.
Currently supported tracing mechanisms are ktrace, strace and truss.
Keys in %args can be:
Only one of exec or pid must be provided.
<B>execB>: Program and arguments to execute
<B>pidB>: PID of program to trace
<B>follow_forksB>: Follow child processes too (default is 1, set to 0 to disable)
Start running the trace.
Wait for the trace to finish
Return a Sys::Trace::Results object populated with the results of the trace.
This does what I wanted, it is probably woefully incomplete in places.
This program is free software. It comes without any warranty, to the extent
permitted by applicable law. You can redistribute it and/or modify it under the
terms of the Do What The Fuck You Want To Public License, Version 2, as
published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING or
Software::License::WTFPL_2 for more details.
David Leadbeater <firstname.lastname@example.org>, 2010
|perl v5.20.3 ||SYS::TRACE (3) ||2010-07-05 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.