Remote Debugging and Developer Observability

In this post, we’ll go over remote debugging — debugging production with developer observability tools and debugging asynchronous code, which presents its own unique challenges! This is actually material from four separate videos because I wanted to pool some ideas together into a single blog post, and the asynchronous stuff got pulled in. So without … Read more

It Ain’t Voodoo — Debugging Code That Doesn’t Make Sense | by Guy Erez | Jun, 2022

Three of the assumptions we make that hurt our code Photo by Fengyou Wan on Unsplash You’re staring intently at your code. You’ve just been informed of a bug someone found in production, and it’s your code that caused it. You need to fix it, fast. There’s just one problem. You’ve been staring at your … Read more

Debugging Kubernetes Pods: Deep Dive | by Amr Farid | May, 2022

In this article, I will talk about debugging and troubleshooting Kubernetes pods using ephemeral containers. Photo by Zan on Unsplash The simplest way to debug pods is to exec into the problematic pods and try to troubleshoot what is happening. This is a simple approach but it has many drawbacks. The running application pods may … Read more

Debugging JCF Issues in Production

The Java Collections Framework was a huge leap forward when it was introduced as part of Java 2 (JDK 1.2). Thanks to the included collection classes we finally moved beyond the limits of Vector and Hashtable to more mature and generic solutions. With the introduction of Streams and functional concepts in Java 8, the framework … Read more

Memory Debugging and Watch Annotations

Before diving into debugging memory issues and the other amazing running process, memory debugging capabilities (which are amazing)… I want to discuss a point I left open in the last duckling post. Back there we discussed customizing the watch renderer. This is super cool! But it’s also tedious. Before we continue, if you prefer, I … Read more

Debugging Deadlocks and Race Conditions

Thread debugging has the reputation of being one of the most arduous tasks for developers. I beg to differ. Asynchronous debugging is so much worse. It’s supposed to solve threading problems, and to some degree, async helps… But it doesn’t make debugging simpler. I will get into that in the next post. Today we’ll discuss … Read more

Mastering GDB. Power up your debugging skills | by Andrew Xu | May, 2022

Power up your debugging skills Photo by Sigmund on Unsplash The GNU Project debugger (GDB) is a very useful debugger under Linux. Smart programmers usually use gdb to debug bugs, when a program core dumps, or a program unexpected behaviors occur. In this article, I will show you how to use gdb efficacy. Compilers often … Read more

Spring Transaction Debugging in Prod With Lightrun

Spring makes building a reliable application much easier thanks to its declarative transaction management. It also supports programmatic transaction management, but that’s not as common. In this article, I want to focus on the declarative transaction management angle, since it seems much harder to debug compared to the programmatic approach. This is completely true. We … Read more

Debugging jsoup Java in Production Using Lightrun

Scraping websites built for modern browsers is far more challenging than it was a decade ago. jsoup is a convenient API that makes scraping websites trivial via DOM traversal, CSS Selectors, JQuery-Like methods, and more. But it isn’t without its caveat. Every scraping API is a ticking time bomb. Real-world HTML is flaky. It changes … Read more

Debugging Python Code Is Like Detective Work — Let’s Investigate

Debugging Python code is not a mysterious art form. It’s like a detective solving a mystery. This analogy comes from one of my favorite programming aphorisms: “Debugging is like being the detective in a crime movie where you are also the murderer.” (Felipe Fortes). So what can real detectives tell us about debugging Python code? … Read more