I am starting to learn about USDT tracing that 0xB10C hosted a PR review club on in May 2021 and is covered in this blog post.

I am still a little unclear when I would reach for this tool (assuming I learnt how to use it effectively!) and how it complements or compares to debugging generally.

Is it something to use when you hit the limits of what a debugger can do?

1 Answer 1


0xB10C answered this on Mastodon. Alternative answers are welcome.

We implement our own tracepoints in our userspace application (Bitcoin Core) and write custom scripts to get insights into the parts we find important.

Tracing via USDT and debugging are two very different things. You can use tracing via USDT as part of the search for a bug but you can't replace debugging with tracing.

Sometimes debugging, as in stepping through code and looking at state with e.g. GDB, is something you do manually.

The tracing done with USDT allows you to use internal state programatically. You can automatically react to some state.

This could be thought of as richer, deeper debugging. Rather than the stop, start nature of breakpoints you can allow the code to run continuously and still manipulate it. Or you could locate a bug using debugging and then explore the impact of the bug with USDT tracing.

Debugging is only one of the USDT applications. Tracepoints can also be used to evaluate/review changes like I do with the Erlay vs master nodes dashboard. Or for general monitoring, anomaly detection, benchmarking and testing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.