High-level synthesis (HLS) promises to increase designer productivity in the face of steadily increasing FPGA sizes, and broaden the market of use, allowing software designers to reap the benefits of hardware implementation. One roadblock to HLS adoption is the lack of a debugging infrastructure. To debug, designers can run their source code on a processor; however, this does not capture interactions with other system components. The alternative is to debug using the RTL, which is beyond the expertise of software designers, and impractical for hardware designers as the RTL may not resemble the original source code.This paper presents a new approach to debugging HLS produced circuits, which allows the user to debug in the context of the source code, while running the circuit in-situ. This is accomplished by automatically inserting debug instrumentation into the circuit, which allows a debugger application to start and stop the circuit, monitor variables and set breakpoints. The instrumentation contains trace buffers to record the control and data flow in real-time, allowing the debugger to retrieve this data and replay the execution.As a proof of concept we integrated our approach into the LegUp HLS tool, and have made it publicly available. We present methods of optimizing the trace buffer usage, and show that we can replay 1243 lines of source code per 100Kb of memory allocated to trace buffers. On average, the instrumentation circuitry requires an 11% logic area overhead. This work enables real-time debugging of HLS circuits using a software-like debug interface, removing a major roadblock of HLS adoption.