我有一個在Ubuntu上運行的服務器程序,它在幾個客戶端連接後掛起。事情是,它只在沒有在IDE中進行調試時纔會執行。我可以從命令行運行它(完全相同的調試二進制文件),將gdb附加到它,它會掛起,但gdb發現沒有問題。但是,當我從MonoDevelop進行調試時,它永遠不會掛起。我有一個Ubuntu/Mono/C#看似無法跟蹤的掛起。我怎麼找到它?
我完全喪失瞭如何從這裏開始。
有誰知道莫諾是否設置了一些標誌或我不知道的東西?我遭到嚴重封鎖並完全沮喪。
我有一個在Ubuntu上運行的服務器程序,它在幾個客戶端連接後掛起。事情是,它只在沒有在IDE中進行調試時纔會執行。我可以從命令行運行它(完全相同的調試二進制文件),將gdb附加到它,它會掛起,但gdb發現沒有問題。但是,當我從MonoDevelop進行調試時,它永遠不會掛起。我有一個Ubuntu/Mono/C#看似無法跟蹤的掛起。我怎麼找到它?
我完全喪失瞭如何從這裏開始。
有誰知道莫諾是否設置了一些標誌或我不知道的東西?我遭到嚴重封鎖並完全沮喪。
顯然,不要讓Console IO堵塞,因爲幾乎沒有指示器。
您可能在某處存在競爭條件 - MonoDevelop使用軟調試器,這會減慢執行的副作用,所以鎖的生計會下降。或者你可以試試這個:http://www.mono-project.com/Debugging#Debugging_Unmanaged_Deadlocks
這很有道理......我會研究它。 –
發現控制檯IO緩衝區堵塞。這顯然導致程序簡單地掛起。 –