Как я могу показать потоки (stacktraces) в зависающем приложении, которые работают с МОНО?
Я знаю, что могу сделать это в.NET с Управляемым проводником стека (MSE). Поскольку приложение зависает только с МОНО, что я должен сделать это с МОНО.
Или существуют какие-либо другие идеи, как я могу найти место зависания?
Предполагая, что вы на Linux / Unix, не Windows, отправьте сигнал SIGQUIT в вашу программу. Это можно сделать с помощью
kill -QUIT $PID
, где $ PID - это PID вашей программы. Моно будет давить следы стека всех ниток в Stdout. Обратите внимание, что, хотя процесс остается после этого, вы не должны ожидать, что он останется пригодным для использования / стабильным.
См. http://en.wikipedia.org/wiki/sigquit для некоторого фона.
ПРИМЕЧАНИЕ: Direum Dump не будет , распечатайте в окне терминала, где вы запустили команду Kill
. Он появится в СтДерре монопроцесса.