Tengo un bloqueo aparentemente imposible de rastrear con Ubuntu/Mono/C#. ¿Cómo puedo encontrarlo?

I've got a server program running on Ubuntu and it hangs after a few clients connect. The thing is, it only does it when not being debugged in the IDE. I can run it (the exact same debug binaries) from a command line, attach gdb to it, and it will hang, but gdb finds no problem. When I debug from MonoDevelop, however, it never hangs.

I am at a complete loss for how to proceed from here.

Does anyone know if Mono sets some flags or something I'm not aware of? I'm crucially blocked and completely frustrated.

preguntado el 03 de mayo de 12 a las 20:05

2 Respuestas

You probably have a race condition somewhere - MonoDevelop uses soft debugger, which slows execution down as a side effect, so the livelihood of a lock decreases. Or you can try this: http://www.mono-project.com/Debugging#Debugging_Unmanaged_Deadlocks

contestado el 03 de mayo de 12 a las 20:05

That makes sense... I'll look into it. - Luis Ingenthron

Turns out the console IO buffer got clogged. Which apparently causes the program to simply hang. - Luis Ingenthron

Apparently, don't let the Console IO get clogged, because there are almost no indicators.

contestado el 04 de mayo de 12 a las 19:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.