A computer system for improving on debugging experiences, the computer system being adapted to: perform a first execution of an entity, wherein performing the first execution of the entity comprises performing a replayed execution of the entity based on utilizing one or more first trace data streams to supply inputs to the entity, the one or more first trace data streams recorded during a prior execution of the entity, the entity being an executable entity; at a point in the first execution of the entity: suspend the first execution of the entity; present a runtime program state as it exists at the point, the runtime program state having a first value; and receive input specifying a second, different, value for the runtime program state; and based on the input, perform a second execution of the entity starting at the point in the first execution, while enabling the first execution to be later resumed unaffected by the second execution, including: setting the runtime program state to the second value; and emulating one or more memory writes performed by the entity during the second execution, wherein emulating one or more memory writes performed by the entity during the second execution comprises one or more of: redirecting a target memory address to memory addresses not used by the first execution of the entity; or saving an existing value at a destination memory address, and restoring the existing value when resuming the first execution of the entity. perform a first execution of an entity, wherein performing the first execution of the entity comprises performing a replayed execution of the entity based on utilizing one or more first trace data streams to supply inputs to the entity, the one or more first trace data streams recorded during a prior execution of the entity, the entity being an executable entity; at a point in the first execution of the entity: suspend the first execution of the entity; present a runtime program state as it exists at the point, the runtime program state having a first value; and receive input specifying a second, different, value for the runtime program state; and based on the input, perform a second execution of the entity starting at the point in the first execution, while enabling the first execution to be later resumed unaffected by the second execution, including: setting the runtime program state to the second value; and emulating one or more memory writes performed by the entity during the second execution, wherein emulating one or more memory writes performed by the entity during the second execution comprises one or more of: redirecting a target memory address to memory addresses not used by the first execution of the entity; or saving an existing value at a destination memory address, and restoring the existing value when resuming the first execution of the entity. suspend the first execution of the entity; present a runtime program state as it exists at the point, the runtime program state having a first value; and receive input specifying a second, different, value for the runtime program state; and based on the input, perform a second execution of the entity starting at the point in the first execution, while enabling the first execution to be later resumed unaffected by the second execution, including: setting the runtime program state to the second value; and emulating one or more memory writes performed by the entity during the second execution, wherein emulating one or more memory writes performed by the entity during the second execution comprises one or more of: redirecting a target memory address to memory addresses not used by the first execution of the entity; or saving an existing value at a destination memory address, and restoring the existing value when resuming the first execution of the entity. setting the runtime program state to the second value; and emulating one or more memory writes performed by the entity during the second execution, wherein emulating one or more memory writes performed by the entity during the second execution comprises one or more of: redirecting a target memory address to memory addresses not used by the first execution of the entity; or saving an existing value at a destination memory address, and restoring the existing value when resuming the first execution of the entity. redirecting a target memory address to memory addresses not used by the first execution of the entity; or saving an existing value at a destination memory address, and restoring the existing value when resuming the first execution of the entity.