1. A method comprising: executing, by a device, one or more programs that use asynchronous message passing, wherein the one or more programs comprise instrumentation code that causes message context information to be generated regarding asynchronous messages passed by the one or more programs, wherein the message context information is indicative of one or more points within the one or more programs at which a particular message is sent or received; maintaining a current message context associated with a particular portion of the one or more programs; receiving a first asynchronous message that includes message context information for the received message; and updating the current message context to include the message context information received via the first asynchronous message.