views:

138

answers:

1

How can I show the threads (stacktraces) in a hanging application that run with MONO?

I know that I can do it in .NET with the Managed Stack Explorer (MSE). Because the application hang only with MONO that I need to do it with MONO.

Or there are any other ideas how I can find the place of hanging?

+4  A: 

Assuming you're on Linux/Unix, not Windows, send a SIGQUIT signal to your program. This can be done with

kill -QUIT $PID

where $PID is the pid of your program. Mono will then dump stack traces of all threads to stdout. Note that although the process stays running after this, you should not expect it to remain usable/stable.

See http://en.wikipedia.org/wiki/SIGQUIT for some background.

mhutch