1. A nontransitory computer-readable medium having computer-executable instructions stored thereon that, if executed by one or more processors of a computing device, cause the computing device to perform actions to analyze a set of context-aware communication graphs for debugging, the actions comprising: creating, by the computing device, a set of aggregate reconstructions based on edges of the set of communication graphs; ranking, by the computing device, the aggregate reconstructions in order of likelihood of being associated with a failed execution; and presenting, by the computing device, one or more highly ranked aggregate reconstructions; wherein edges of the set of communication graphs represent communication events between threads; wherein nodes of the set of communication graphs each include an instruction address and a context; and wherein the context represents a sequence of communication events observed by a thread prior to the execution of an instruction at the instruction address regardless of the memory location involved in the sequence of communication events.