1. A method comprising: using firmware of a system to periodically capture, in response to a plurality of interrupts, architecture data for software executing on the system, wherein the architecture data includes state data and event data; converting a format of the architecture data into a format associated with a simulator; replaying the architecture data in the simulator; and obtaining failure information from the simulator, wherein the failure information corresponds to the software.