Approaches for debugging include receiving (412) by a hardware debug server (106), a high-level language (HLL) debugging command for setting a breakpoint in an HLL software specification. The hardware debug server translates (414) the HLL debugging command into a hardware debugging command that specifies a condition of a hardware finite state machine that is representation of the software specification. The hardware debugging command is input (414) to a simulator (108). The simulator adds (420) a conditional breakpoint on the finite state machine in response to the hardware debugging command and executes (420, 426) a simulation of the finite state machine representation. Execution of the simulation is suspended (428) in response to the detecting the condition in the finite state machine.