我对 Ubuntu/Mono/C# 有一个看似无法追踪的挂断.我怎么能找到它

本文关键字:追踪 怎么能 Mono Ubuntu 有一个 我对 | 更新日期: 2023-09-27 18:33:01

我有一个在 Ubuntu 上运行的服务器程序,它在几个客户端连接后挂起。 问题是,它仅在未在 IDE 中调试时才执行此操作。 我可以从命令行运行它(完全相同的调试二进制文件(,将 gdb 附加到它,它会挂起,但 gdb 发现没有问题。 但是,当我从MonoDevelop调试时,它永远不会挂起。

我完全不知道如何从这里开始。

有谁知道 Mono 是否设置了一些标志或我不知道的东西? 我被严重封锁并完全沮丧。

我对 Ubuntu/Mono/C# 有一个看似无法追踪的挂断.我怎么能找到它

你可能在某处有竞争条件 - MonoDevelop使用软调试器,作为副作用,它会减慢执行速度,因此锁的寿命减少。或者你可以试试这个:http://www.mono-project.com/Debugging#Debugging_Unmanaged_Deadlocks

显然,不要让控制台 IO 堵塞,因为几乎没有指示器。