you establish a hypothesis on why something does not work. You test this hypothesis, and you refine or reject it. When debugging, people are doing this all the time. Manually. Delta Debugging automates this process.
Tag: debug
HTTP Debugging Pitfalls
curl, livehttpheaders and even wireshark munge the HTTP you get. ugh
Dtrace for mac
oh wow, i didn’t realize mac os has dtrace now. et tu, linux?
Chronomancer
finally a debugger for the 21th century. suck it, gdb
Kernel Debugging at scale
This paper will discuss the difficulties and methods involved in debugging the Linux kernel on huge clusters. Intermittent errors that occur once every few years are hard to debug and become a real problem when running across 1000s of machines simultaneously. The more we scale clusters, the more reliability becomes critical. Many of the normal debugging luxuries like a serial console or physical access are unavailable. Instead, we need a new strategy for addressing thorny intermittent race conditions. This paper presents the case for a new set of tools that are critical to solve these problems and also very useful in a broader context. It then presents the design for one such tool created from a hybrid of a Google internal tool and the open source LTTng project. Real world case studies are included.
how to deal with rare error conditions that are hard to reproduce
Firebug for iPhone
implemented via a intercepting proxy
ssldump
Identifies TCP connections on the chosen network interface and attempts to interpret them as SSLv3/TLS traffic. When it identifies SSLv3/TLS traffic, it decodes the records and displays them in a textual form to stdout.
A New Approach To Debugging
I have built a system, which I’m calling Amber, to record the complete execution history of arbitrary Linux processes. The history is recorded using binary instrumentation based on Valgrind. The history is indexed to support efficient queries that debuggers need, and then compressed and written to disk in a format optimized for later query and retrieval.
roc’s magic new debugging framework in more detail
Avoiding JavaScript Memory Leaks
1) XMLHttpRequest onreadystatechange = 2) Clean up all your DOM event handlers on unload 3) Never put anything in a DOM expando or property other than a primitive value unless you plan on cleaning it up.