# jbachorik/btrace

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jbachorik-btrace).**

5,991 stars · 956 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/jbachorik/btrace
- awesome-repositories: https://awesome-repositories.com/repository/jbachorik-btrace.md

## Description

btrace is a Java dynamic tracing tool and instrumentation framework designed for real-time diagnostics. It enables the injection of monitoring code into running Java virtual machines to analyze behavior and diagnose processes without requiring an application restart.

The platform features a dynamic probe engine for executing single-line debugging commands to print data and trace call stacks. It provides an extensible tracing framework that supports custom functionality and external integrations through isolated implementation modules.

The system covers runtime performance monitoring, method execution tracing, and Java application diagnostics. It captures timing, exception data, and argument values at function entry and exit points while managing extension security through a permission system that controls access to the network and file system.

## Tags

### Development Tools & Productivity

- [Java Diagnostic Toolkits](https://awesome-repositories.com/f/development-tools-productivity/java-diagnostic-toolkits.md) — Provides a comprehensive toolkit for real-time troubleshooting of live Java applications via method execution and stack tracing.
- [Extension Permissions](https://awesome-repositories.com/f/development-tools-productivity/extension-managers/extension-permissions.md) — Manages approval policies and permissions for third-party tracing extensions to control system resource access. ([source](https://github.com/jbachorik/btrace#readme))
- [JVM Extension Permissions](https://awesome-repositories.com/f/development-tools-productivity/security-module-management/jvm-extension-permissions.md) — Controls network and file system access for dynamic tracing modules to minimize security risks.

### Part of an Awesome List

- [Java Agents](https://awesome-repositories.com/f/awesome-lists/devtools/java-frameworks/java-agents.md) — Utilizes Java agents to transform classes at runtime, enabling non-invasive monitoring of running virtual machines. ([source](https://github.com/jbachorik/btrace#readme))
- [JVM Profiling Tools](https://awesome-repositories.com/f/awesome-lists/devtools/jvm-profiling-tools.md) — Safe, dynamic tracing tool for the Java platform.

### Programming Languages & Runtimes

- [Runtime Bytecode Instrumentation](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/intermediate-representations/bytecode/runtime-bytecode-instrumentation.md) — Implements runtime bytecode instrumentation to inject monitoring code into live Java processes without requiring a restart.
- [Dynamic Agent Loading](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-agent-loading.md) — Enables the injection of monitoring logic into live Java processes using the Java Attach API.
- [Java Instrumentation Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/java-instrumentation-frameworks.md) — Provides a system for capturing method execution timing, exceptions, and argument values at function entry and exit points.
- [Reflection-Based Heap Inspection](https://awesome-repositories.com/f/programming-languages-runtimes/reflection-based-heap-inspection.md) — Reads runtime values and call stacks from the Java heap using the reflection API for dynamic probes.

### Software Engineering & Architecture

- [Dynamic Probes](https://awesome-repositories.com/f/software-engineering-architecture/method-logic-injection/dynamic-probes.md) — Implements a mechanism for executing rapid, single-line debugging commands to print data and trace stacks in real time.
- [Host-Process Isolation](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures/host-process-isolation.md) — Runs custom tracing plugins in isolated containers to ensure host process stability and prevent crashes.
- [Trace Event Processing Engines](https://awesome-repositories.com/f/software-engineering-architecture/trace-event-processing-engines.md) — Processes method entry and exit points as a stream of events for real-time analysis and performance data extraction.

### System Administration & Monitoring

- [Performance Tuning](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring/performance-tuning.md) — Captures function entry/exit timing and argument values to facilitate performance tuning in running applications.
- [Dynamic Tracing Tools](https://awesome-repositories.com/f/system-administration-monitoring/automatic-tracing-instrumentation/java-integrations/dynamic-tracing-tools.md) — Injects monitoring code into running Java virtual machines to diagnose behavior without restarting the application.
- [Dynamic Debugging Probes](https://awesome-repositories.com/f/system-administration-monitoring/dynamic-debugging-probes.md) — The ability to execute single-line debugging commands within the product to print data, count events, and trace call stacks rapidly. ([source](https://github.com/jbachorik/btrace#readme))
- [Execution Tracing](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/execution-tracing-analysis/execution-tracing.md) — Records the sequence of operations and function calls to analyze performance and diagnose behavior. ([source](https://github.com/jbachorik/btrace#readme))
- [Running Process Tracers](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/execution-tracing-analysis/execution-tracing/process-lifecycle-tracing/running-process-tracers.md) — Attaches to already-running Java processes to capture high-resolution execution traces without requiring a restart. ([source](https://github.com/jbachorik/btrace#readme))
- [Performance Tracing Platforms](https://awesome-repositories.com/f/system-administration-monitoring/performance-tracing-platforms.md) — Offers an integrated platform for recording and analyzing system-wide performance events through extensible modules.
- [Custom Tracing Extensions](https://awesome-repositories.com/f/system-administration-monitoring/automatic-tracing-instrumentation/java-integrations/custom-tracing-extensions.md) — Supports building specialized monitoring tools and external integrations using isolated modules.
- [Extension Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/execution-tracing-analysis/execution-tracing/tracing-control-interfaces/extension-interfaces.md) — Provides a stable interface for developers to add custom tracing functionality and external integrations. ([source](https://github.com/jbachorik/btrace#readme))

### Security & Cryptography

- [Capability-Based Security](https://awesome-repositories.com/f/security-cryptography/security/policies/capability-authorization/capability-based-security.md) — Provides a permission system that restricts extension access to sensitive system resources like the network and file system.
