A well-formatted and improved tracer for system calls and signals, designed for clarity when debuggers fall short.
ctrace is a Node.js-based command-line utility that formats and enhances the output of system call tracers like `strace` and `dtruss`. It solves the problem of overwhelming and hard-to-read trace data by providing structured, filtered, and annotated output, making it easier to debug performance issues, unhandled errors, or understand OS kernel behavior.
Developers, system administrators, and learners who need to debug low-level performance problems, analyze application behavior at the system call level, or study OS internals without sifting through verbose tracer output.
Developers choose ctrace because it transforms chaotic system call traces into actionable insights with built-in error explanations, filtering, and cross-platform support, reducing the time and effort required for deep system-level debugging.
Well-formatted and improved trace system calls and signals (when the debugger does not help)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works on macOS using dtruss and Linux using strace, making it versatile for debugging across different operating systems, as stated in the README.
Formats system call traces with descriptions, synonyms, and error messages, reducing information overload compared to raw strace/dtruss output, which addresses the core problem highlighted in the README.
By default, shows only system calls with errors, and offers -v for full output or -f to filter by specific syscalls, enabling quicker debugging of issues like unhandled errors.
Can be installed globally via npm with a simple command, making setup straightforward for developers familiar with Node.js ecosystems.
Resolves errno codes into human-readable messages only on macOS, leaving Linux users with raw error numbers, as admitted in the README's features section.
Requires Node.js and npm for installation, adding overhead and potential compatibility issues in minimal or non-Node environments, which isn't ideal for system-level tools.
On macOS, System Integrity Protection can block tracing, potentially forcing users to disable SIP—a security risk not recommended by Apple, as detailed in the Troubleshooting section.