C++ and C Debugging, Testing and Reliability by David Spuler
This book is designed to help programmers reduce the time spent debugging programs and increase their confidence that a program is reliable - from the start. It presents a variety of techniques and tools for finding program bugs, for correcting them, and also for preventing them in the first place. It also features a catalogue of common C/C++ pitfalls and a symptom catalogue. Source code is provided on an accompanying disk.