System tracer implementation in Rust
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
.travis.yml
Cargo.toml
README.md
gen.py
gen_syscalls.py
gen_syscalls.sh

README.md

Tracer Gitter Build Status

The system tracer will show all syscalls, methods and optionally assembly that is being executed. This allows tracing of complete program flows. Tracer can be run for new processes, but also be attached to existing processes.

Usage

Start a new process

$ cargo run -- -a -c "/bin/ls"
...
/bin/ls                                4021f0         ff254a9e2100 jmp localtime
/bin/ls                                4021f0           6805000000 push localtime
/bin/ls                                4021f0           e990ffffff jmp localtime
/bin/ls                                4021f0         ff254a9e2100 jmp localtime
/bin/ls                                4021f0           6805000000 push localtime
/bin/ls                                4021f0           e990ffffff jmp localtime
/bin/ls                                402270         ff250a9e2100 jmp __fpending
/bin/ls                                402270           680d000000 push __fpending
/bin/ls                                402270           e910ffffff jmp __fpending
/bin/ls                                402310         ff25ba9d2100 jmp fclose
/bin/ls                                402310           6817000000 push fclose
/bin/ls                                402310           e970feffff jmp fclose
unknown                          7fc465c63b0e                 0f05 syscall close( 3) ( fd: 01 )
...

Connect to an existing process

$ cargo run -- -a --pid 0

References

TODO