For the following code, if I put a breakpoint on line where let a is in Xcode, LLDB debug server will crash.
If I start the initial coroutine on main queue instead of global, or if I remove the middle CoFuture, no crashes would happen when the breakpoint hits.
import UIKit
import SwiftCoroutine
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.global().startCoroutine {
try CoFuture<Void> {
try DispatchQueue.main.await {
let a = 1 /* SET BREAKPOINT ON THIS LINE*/
}
}.await()
}
}
}
Message from debugger: The LLDB RPC server has crashed. The crash log is located in ~/Library/Logs/DiagnosticReports and has a prefix 'lldb-rpc-server'. Please file a bug and attach the most recent crash log.
Unfortunately, when this crash happens, no actual diagnostic files are actually generated.