1. A computer-implemented method, comprising: a debugger stepping through target code in a computer program; the debugger identifying a coroutine yield point in the target code, the coroutine yield point comprising an instruction to call a coroutine and to continue processing after the coroutine yield point in the target code when processing is returned to the target code as a result of execution of the coroutine called by the coroutine yield point; the debugger obtaining identifying information to identify continued processing after the coroutine yield point in the target code when processing is returned to the target code as a result of execution of a coroutine instance outside the target code, the execution of the coroutine instance resulting from the coroutine instance being called by the coroutine yield point; the debugger setting a breakpoint having a condition of matching the identifying information with runtime information, the breakpoint being set at a location in the target code for continued stepping after the coroutine yield point, and the breakpoint being different from the coroutine yield point; the debugger performing the coroutine instance and resuming executing the target code after the coroutine yield point; the debugger encountering the breakpoint in the target code; the debugger determining whether the condition of the breakpoint is met; and the debugger pausing execution of the target code at the breakpoint if the condition of the breakpoint is met.