Skip to content
johnlcf edited this page Jun 13, 2011 · 11 revisions

Welcome to the StraceAnalyser wiki!

StraceAnalyser is a python-based tool that parse the output of Linux strace and do some analysis and statistics by various plugins. The primary objectives is for Linux system support, who get the strace output file from client, to analysis the strace output for information.

Documentation

For quick demo just checkout the code and run:

./strace_analyser -e StatProcessTree test/stardict.out

For usage please run

./strace_analyser -h

Development

Since this project is still in preliminary stage the structure can change quickly. Here are some basic information:

StraceAnalyser is based mainly on two parts: the strace parser and the plugins

StraceParser

It is a parser for Linux strace output. Our target is a general strace output parser that can parse different format of strace (i.e. strace run with different options).

Currently it supports:

  • with/without -t/-tt (with time)
  • with/without -T (with time spent in syscall)
  • with/without -f (with pid)

It doesn't support with "-ff" option (multiple file for multiple child process) yet.

The parser will parses the strace output file and pass the syscall result to plugins (see below).

statPlugins

They are some plugins that process the parsed output of strace. Every single plugin can "register" the syscall they are "interested" in. And then when parser parses a line of syscall it will involve the registered plugins to process it.

Currently it supports:

  • StatProcessTree : Summarize the process fork tree from the strace file
  • StatFileIO : Summarize file IO (file name, read/write bytes, etc) from the strace output

Getting involved

If you are interested, feel free to send email to me: johnlcf_At_gmail_dot_com

Licensing

StraceAnalyser is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Clone this wiki locally