如何从单声道内部打印线程堆栈

时间:2015-12-31 18:36:17

标签: c# mono dllimport

我在OSX上使用Mono 3.2.7。我希望我的程序能够为诊断导出触发线程转储。

[DllImport("libmono", EntryPoint = "_mono_threads_request_thread_dump")]
public static extern void MonoThreadsRequestThreadDump();

调用它时,没有任何内容写入stdout。

删除前导下划线会导致Mono中出现本机异常。

我做错了什么或者什么是实现目标的更好方法?

1 个答案:

答案 0 :(得分:1)

使用[DllImport("__Internal")]代替libmono。调用此方法有效,但是在刷新标准输出时仍然有问题。

更简单的方法是发送SIGQUIT信号,它将“全线程转储”写入stdout。