1. At a computer system, a method for marshalling data to perform a diagnostic operation for a target execution context, the method comprising: an act of receiving an indication that a diagnostic operation is to be performed for part of a target execution context within another separate execution context, the other separate execution context being separated by an execution boundary such that execution within the other separate execution context does not influence execution outside of the other separate execution context, the other separate execution context to be created from an instrumented version of the assembly used to create the target execution context, and the other separate execution context being representative of the target execution context; an act of non-invasively obtaining a portion of state data related to performing the diagnostic operation for the part of the target execution context, non-invasively obtaining the state data including accessing state data from at least one of: a memory location and a register the target execution context is using to store state data during execution, without altering any accessed state data contained in the at least one of: the memory location and the register; an act of marshalling any obtained state data into a format for delivery to the other separate execution context so that the other separate execution context can perform the diagnostic operation based on the obtained state data; and simulating, in the other separate execution context, performance of the diagnostic operation within the target execution context without influencing subsequent execution within the target execution context.