With architectures becoming more distributed and code more asynchronous, pinpointing and resolving errors in production is harder than ever. In this article we investigate five advanced techniques that can help you get to the root cause of painful bugs in production more quickly, without adding material overhead.
Concurrency bugs include race conditions, code reordering, field visibility issues, live locks, deadlocks and performance related bugs, such as contention and starvation. In this article Java Specialist Dr. Heinz Kabutz examines two threading bugs he discovered in the core Java libraries.
Takipi is trying to level out the playing field between dev and prod debugging by making it just as easy to debug Java and Scala code in production as it is on your desktop. It detects errors and exceptions in server code, provides analytics to help prioritize them, and captures the source code and values of variables that caused them.
InfoQ talked with Sandi Metz, author of "Practical Object-Oriented Design in Ruby" about her book, learning from open source code, making sensible use of code analysis tools and other topics.
To refactor legacy code, the ideal is to have a suite of unit tests to prevent regressions. However it's not always that easy. This article describes a methodology to safely refactor legacy code. 7
Static analysis has a broad set of capabilities to offer the .NET world. Nevertheless, some defects cannot be detected by this analysis technique. The flow analysis feature of dotTEST does that. 1
A different breed of JVM debuggers has emerged that removes all the guesswork from replicating a bug. They simply record the running application and know exactly what happened. 3
IBM’s Yao Qi, Raja Das, and Zhi Da Luo describe jucprofiler, an alphaWorks tool designed to profile multicore applications that make use of the java.util.concurrent classes introduced in Java 5. 2
This article explores how to set up, test out, and work with the MonoTouch debugger while developing iPhone applications, including debugging running applications over Wifi. 2
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers. 7
"Ruby has no debugger" - this misconception has stuck around for ages. Time to eradicate it: Ruby does indeed have powerful debugging support. We look at what's available for all Ruby implementations.
Patrick Smacchia is a Visual C# MVP with over 15 years of software development experience. He is the lead developer of NDepend.