belozierov / SwiftCoroutine

Swift coroutines for iOS, macOS and Linux.
https://belozierov.github.io/SwiftCoroutine
MIT License
836 stars 51 forks source link

A certain nested coroutines causes LLDB RPC Server crash on a breakpoint #31

Open heshuimu opened 4 years ago

heshuimu commented 4 years ago

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.

ladeiko commented 4 years ago

Try to get logs from ~/Library/Logs/DiagnosticReports

ladeiko commented 4 years ago

I have the same issiues

heshuimu commented 4 years ago

Try to get logs from ~/Library/Logs/DiagnosticReports

I wanted to, but when the crash happens nothing appears in that directory.

NicoDB79 commented 2 years ago

I have the same issue. Crash when putting breakpoint in nested coroutines. Did someone find a solution? Thanks.