Currently only Go V1.22.0 is supported.
CodeBull Logo

Introduction to CodeBull

CodeBull is a VS Code extension that brings dynamic observability to your Go applications. It allows developers to inject logs, metrics, and traces into a running application without rewriting code, rebuilding binary, or restarting the process.

Traditional debugging often involves adding print statements, recompiling, and restarting the app. CodeBull eliminates this friction by leveraging runtime instrumentation techniques.

Core Concepts

Dynamic Instrumentation

The ability to modify the behavior of a running program by injecting code at specific points (e.g., function entry/exit, specific lines). CodeBull uses this to insert observability hooks safely.

Key Features

Dynamic Logging

Inject log statements anywhere in your code. Capture variable values, function arguments, and return values.

Dynamic Logging Example

Instant Metrics

Monitor the performance and behavior of your application in real-time. Add counters to track how often a line of code is executed, or gauges to track the value of a variable over time.

Profiling (Coming Soon)

Generate CPU and memory profiles on-demand directly from VS Code. Visualize flame graphs to identify bottlenecks.

FAQ

Does it work with optimized binaries?
Yes, CodeBull supports optimized binaries, though some variable values might be optimized away.
Is there a performance overhead?
Minimal overhead is introduced only at the instrumentation points. When no points are active, overhead is zero.(Continuous improving)