You're feeling pretty good. Your latest embedded whiz-bang sailed through unit testing without a hitch, the marketing folks are touching up their launch plans, product literature is at the printers, and the sales department has announced a release date. Life is good. Time to get caught up on that backlog of e-mail messages.
Preliminary testing shows evidence of a memory leak.
So much for your good mood. Programming errors that occur only during run time can be very difficult and time-consuming to locate. Often the cause of the error is far removed from the actual program failure. Even if you can locate where the program crashes, it may still be days or weeks before you can locate the actual cause. Useful tools for native applications are finding their way into the embedded developers tool arsenal.