Debugging Mono:软调试器/MonoDevelop+;嵌入式运行时

Debugging Mono:软调试器/MonoDevelop+;嵌入式运行时,debugging,mono,monodevelop,Debugging,Mono,Monodevelop,我正在尝试调试正在本机应用程序中加载的托管程序集。我已经在MonoDevelop中启用了使用自定义命令Mono Soft Debugger运行,并且正在成功地连接我的应用程序。但是,应用程序在即将到达断点时挂起 我做了一些调查,当从另一个线程(而不是初始化mono运行时的线程)调用方法时,它似乎挂起。当从同一线程运行时,它被正确命中 我正在为每个想要调用托管区域的线程调用mono\u thread\u attach,在没有附加调试程序的情况下,一切都可以正常工作 规格:Mono 2.10.8,M

我正在尝试调试正在本机应用程序中加载的托管程序集。我已经在MonoDevelop中启用了使用自定义命令Mono Soft Debugger运行,并且正在成功地连接我的应用程序。但是,应用程序在即将到达断点时挂起

我做了一些调查,当从另一个线程(而不是初始化mono运行时的线程)调用方法时,它似乎挂起。当从同一线程运行时,它被正确命中

我正在为每个想要调用托管区域的线程调用
mono\u thread\u attach
,在没有附加调试程序的情况下,一切都可以正常工作

规格:
Mono 2.10.8,MonoDevelop:2.8.6.4

Edit1:
尝试了monodevelop的主干构建,但没有成功。还没有尝试过主干单声道构建


Edit2:
因为我的场景是(大致上):主线程初始化应用程序,然后逻辑线程运行主循环,所以我在启动循环之前分离了主线程(
mono\u thread\u detach
)。现在它可以工作了,所以至少我可以调试我的东西,只要有一个单线程连接。

似乎是连接的:回溯挂起的进程,看看它处于什么状态,最有可能的是调试器正在等待一些注册的线程停止。有什么提示如何检查这些东西吗?当我将VS debugger附加到嵌入应用程序时,它在使用断点执行托管函数时崩溃。软调试器实现断点并作为segfaults单步执行,然后捕获并处理这些断点。不幸的是,VS调试器将这些解释为崩溃,因为它没有意识到它们已被处理。你需要运行应用程序,让它命中断点并挂起,然后连接VS调试器。谢谢,我已经能够检查线程(有相当多的线程,并不是所有线程都连接了mono运行时-只有2个线程正在调用managed),但我还没有从中学到任何有意义的东西。我到底应该检查什么?