I've summarized my work on Userspace, Statically Defined Tracing support for Bitcoin Core in my Coinbase grant half-time report.
@michaelfolkson Yes! I've been thinking about some kind of USDT workshop for CoreDev too.
A Socratic might be better once we have more tracepoints merged and people building tools/using the tracepoints? Maybe sometime between CoreDev and 23.0. release?
@0xb10c Absolutely, sounds good. I will have to read it before CoreDev then if you're doing a workshop. It still hasn't clicked with me when it makes sense to use tracing over debugging (or vice versa). I guess if I was a more experienced debugger I'd encounter more problems where I hit the limits of what a debugger can do.
@michaelfolkson I'm not sure if I'd see reading "BPF Performance Tools" as a requirement. The tools are very specific for tracepoints in the Linux kernel. We don't use any of these tools or tracepoints.
We just implement our own tracepoints in our userspace application (Bitcoin Core) and write custom scripts to get insights into the parts we find important.
Additionally, I think '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.
@0xb10c Added a StackExchange post with the above, thanks! https://bitcoin.stackexchange.com/questions/109484/when-would-i-use-usdt-tracing-over-debugging-how-do-they-compare-and-complement/
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!