如何使用MONO进行线程转储?

Hor*_*ux7 19 .net mono stack-trace thread-dump

如何在与MONO一起运行的挂起应用程序中显示线程(stacktraces)?

我知道我可以使用Managed Stack Explorer(MSE)在.NET中完成它.因为应用程序仅与MONO挂起,我需要使用MONO.

或者还有其他想法如何找到悬挂的地方?

Mik*_*son 22

假设您使用的是Linux/Unix,而不是Windows,请向您的程序发送SIGQUIT信号.这可以通过以下方式完成

kill -QUIT $PID
Run Code Online (Sandbox Code Playgroud)

其中$ PID是您程序的pid.Mono然后将所有线程的堆栈跟踪转储到stdout.请注意,虽然此后进程仍在运行,但您不应期望它保持可用/稳定.

有关背景信息,请参见http://en.wikipedia.org/wiki/SIGQUIT.

注意:线程转储不会在运行kill命令的终端窗口中打印出来.它将出现在单声道进程的stderr中.