David Leadbeater > Sys-Trace > Sys::Trace

Download:
Sys-Trace-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source  

NAME ^

Sys::Trace - Interface to system call tracing interfaces

SYNOPSIS ^

  use Sys::Trace;

  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

  use Cwd;
  print $result->files(getcwd . "/"); # Should show an attempt to look at "foo"
                                      # in the current directory (i.e. "ls
                                      # foo", above)

DESCRIPTION ^

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.

METHODS ^

new(%args)

Keys in %args can be:

Only one of exec or pid must be provided.

start

Start running the trace.

wait

Wait for the trace to finish

results

Return a Sys::Trace::Results object populated with the results of the trace.

BUGS ^

This does what I wanted, it is probably woefully incomplete in places.

See http://github.com/dgl/perl-Sys-Trace.

LICENSE ^

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.

AUTHOR ^

David Leadbeater <dgl@dgl.cx>, 2010

syntax highlighting: