1. In a computing device that includes an operating system and at least one program, a method of identifying the source of a failure, comprising: (a) in response to receiving notice of a failure, obtaining the memory contents of said computing device, the memory contents including the stack associated with the active thread; (b) identifying base pointers stored in the stack; (c) selecting a subset of base pointers stored in the stack; and (d) identifying a code library from the subset of base pointers that caused a failure generating instruction to be executed.