Does stepping through async code work for anyone?

Does stepping through async code in Xcode 13 or 14 work for anyone? Apple seems to think it works (they keep rejecting the feedback I send), but it just doesn't work for me. I opened a new bug about the same issue today (because they closed my previous one), wherein I can't step over an await call; the debugger just continues as if I had told it to Continued instead of step over.

Trying things out with a simple macOS app project, it's a bit better. In a unit test, I can sort-of step over an async call, but it takes three invocations of the step over command. Attempting to Run after that results in a runtime error that it couldn't set a breakpoint ("step over failed (Could not create return address breakpoint.)"). Continuing after that things complete normally. I am unable to step into the call at all

A similar call from a running SwiftUI app has to be stepped over twice before the "step over failed" error. It also cannot step in without error.

In my large Vapor app, stepping into or over just results in behavior as if I had Continued.

From the release notes for Xcode 14.0 beta 4, released today:


Resolved in Xcode 14 Beta 4

  • Fixed: Stepping into a Swift async function in LLDB finishes the current function instead. (88142757)

Whether it's actually working, or at least working better than beta 3, I don't know yet.

Yeah, the behavior I described above is with beta 4.

Can you share your feedback numbers, please?

Sure! FB10012674 was the earlier one that got closed, demonstrating a number of issues around stepping and breaking in async code. FB10899199 is the one I opened today just about stepping over the call in 14b4.