https://github.com/sectordistrict/intentrace Skip to content Navigation Menu Toggle navigation Sign in * Product + GitHub Copilot Write better code with AI + Security Find and fix vulnerabilities + Actions Automate any workflow + Codespaces Instant dev environments + Issues Plan and track work + Code Review Manage code changes + Discussions Collaborate outside of code + Code Search Find more, search less Explore + All features + Documentation + GitHub Skills + Blog * Solutions By company size + Enterprises + Small and medium teams + Startups By use case + DevSecOps + DevOps + CI/CD + View all use cases By industry + Healthcare + Financial services + Manufacturing + Government + View all industries View all solutions * Resources Topics + AI + DevOps + Security + Software Development + View all Explore + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Enterprise + Enterprise platform AI-powered developer platform Available add-ons + Advanced Security Enterprise-grade security features + GitHub Copilot Enterprise-grade AI features + Premium Support Enterprise-grade 24/7 support * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up Reseting focus You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} sectordistrict / intentrace Public * Notifications You must be signed in to change notification settings * Fork 5 * Star 306 intentrace is strace with intent, it goes all the way for you instead of half the way. intentrace is currently in beta License MIT license 306 stars 5 forks Branches Tags Activity Star Notifications You must be signed in to change notification settings * Code * Issues 1 * Pull requests 0 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights sectordistrict/intentrace main BranchesTags [ ] Go to file Code Folders and files Last commit Last Name Name message commit date Latest commit History 17 Commits src src .gitignore .gitignore Cargo.lock Cargo.lock Cargo.toml Cargo.toml LICENSE LICENSE README.md README.md intentrace-example.jpg intentrace-example.jpg intentrace-example.png intentrace-example.png itrace.png itrace.png View all files Repository files navigation * README * MIT license Intentrace About intentrace is a strace for everyone, intentrace works similarly to strace in that it intercepts and records the system calls which are called by a process, it then reasons through these syscalls by consulting an enormous backlog of handwritten syscall deductions. Due to the fact that linux syscalls almost always have dual usage that's obfuscated by libraries, seeing what a syscall is exactly asking for is immensely useful when e.g. a programmer is debugging a crashing binary. Intentrace Example Intentrace follows a similar working methodology to the one employed by the UniKraft kernel in that it attempts to cover a high percentage of the most popular linux software despite supporting only around 166 syscalls out of the 380+ linux syscalls (see page 8 of the Unikraft Paper for an example of strategic syscall coverage: https://arxiv.org /pdf/2104.12721). It's planned eventually for intentrace to cover all linux syscalls. Usage to quickly see how intentrace works in action, you can run simple examples intentrace ls intentrace google-chrome to disable program output from cluttering the syscall feed add -q intentrace -q ls to include the child processes of multi-threaded programs add -f intentrace -f docker run alpine Parameter Description Default value -c provide a summary table at the end of false --summary tracing -p pid attach to an already running proceess not enabled --attach pid -f trace child process when traced programs false --follow-forks create them -z only print failed syscalls false --failed-only -q mute traced program's std output false --mute-stdout Installation Build from source Prerequisites: * Latest stable version of Rust and Cargo. Build and run intentrace: git clone https://github.com/sectordistrict/intentrace.git cd intentrace cargo build --release Install from crates.io: cargo install intentrace Project status intentrace is currently in beta, currently multi-threaded programs are a hit and miss. intentrace was originally intended to be a 2 window TUI, where a top panel shows a normal stream of syscalls, and a bottom panel containing metadata and explanation, however this was abandoned in favor of the current scheme. Supported architecture intentrace currently only supports x86-64, given that the program is currently in beta, PRs for cross compatibility will unfortunately not be accepted until the program is stable enough. Contributing Support intentrace by contributing issues and PRs, don't feel discouraged from filing issues or creating PRs. Reading the source is a great way to learn how linux works. Feel free to file issues and open Pull Requests. Issues and PRs can contain and involve: * better wording. * suggestions for granularity. * suggestions for fixes. * etc.. there are no rules, feel free to contribute as you see fit. About intentrace is strace with intent, it goes all the way for you instead of half the way. intentrace is currently in beta Resources Readme License MIT license Activity Stars 306 stars Watchers 3 watching Forks 5 forks Report repository Releases 3 intentrace v0.2.4 Latest Nov 7, 2024 + 2 releases Packages 0 No packages published Contributors 3 * @sectordistrict sectordistrict * @brannondorsey brannondorsey Brannon Dorsey * @zamazan4ik zamazan4ik Alexander Zaitsev Languages * Rust 100.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.