The user experience of modern computing systems is greatly enriched by I/O devices that provide a rich variety of functions including data storage (e.g disk and flash drives), connection to the Internet (e.g network cards, webcams), and entertainment (e.g. speakers, GPUs). I/O devices are quite popular in today's computing environments because they are quite easy to setup for use. In most cases, this involves no more than installing a device driver---a piece of software that is often implemented as an Operating System (OS) kernel module---to manage the device. However, defects in device drivers are a major source of system failures, either by crashing the driver (and consequently the whole system) or by corrupting the OS or applications. In the Linux kernel, the error rates of drivers are several times that of any other subsystem, while up to 85% of Windows XP failures are caused by driver errors. This thesis investigates the use of log based dynamic binary analysis for detecting defects in production drivers, towards improving the reliability of computing systems.