Tracing .NET Core on Linux With USDT and BCC

In my last post, I lamented the lack of call stack support for LTTng events in .NET Core. Fortunately, being open source, this is somewhat correctable — so I set out to produce a quick-and-dirty patch that adds USDT support for CoreCLR’s tracing events. This post explores some of the things that then become possible, and will hopefully become available in one form or another in CoreCLR in the future.
Very Brief USDT Primer
USDT (User Statically Defined Tracing) is a lightweight approach for embedding static trace markers into user-space libraries and applications. I took a closer look a year ago when discussing USDT support in BCC, so you might want to take a look as a refresher.