RUBYOPT and the Sneaky Shim

You need to insert a compatibility shim, diagnostics, or tracing code into a Ruby process… but you don’t have control over how the program is…

Ask the Runtime

It’s hard to eat a sandwich with a spoon, and it’s hard to debug dynamic programs with static tools. In this episode, we look at…

Investigative Debugging

Investigative debugging is the practice of using the full diagnostic arsenal at our disposal, along with our special privileges as ma…

Inspecting Ruby

"What's going on in there?" Ruby can usually answer the question for you... if you know how to ask. This course on diagnostics, debugging, a…

mitmproxy

Have you ever needed to understand the HTTP[S] communication between a client program and its server? Learn to use the mitmproxy server to spy on HTTP…

Docker Diff

"What did that program change?!!" - In today's episode you'll see how you can definitively answer this question, using a built-in feature of Docker!

ltrace

As we've explored recently, strace is a powerful tool for understanding how a program interacts with the operating system. But it's only for system ca…

Strace

Learn to use strace - a powerful microscope for peering into a program's interactions with the operating system.

Dynamic Inspect

When it comes to debugging, you can fight with Ruby's dynamic nature... Or you can embrace it. A little just-in-time metaprogramming can give you a cl…