我正在尝试使用定制的64位Mono副本运行一个简单的Xamarin.Mac应用程序。该程序在启动后不久就会间歇性地崩溃(装配后),抱怨以下问题:
Assertion at mini-exceptions.c:1953, condition `gaddr == tls->stack_ovf_guard_base' not met
每当应用程序没有崩溃时,它都能正常运行。有没有人知道造成这种情况的原因是什么?
答案 0 :(得分:1)
您似乎在单声道运行时发现了一个错误,我认为它与JIT编译器有关。我相信错误表明在运行本机代码时发生了某种堆栈损坏。我会将错误报告给单声道开发人员 - http://www.mono-project.com/Bugs。
似乎64位mac支持有一些限制,似乎不是100%支持 - http://www.mono-project.com/Mono:OSX#32_and_64_bit_support:
64位支持今天有一些限制,这就是我们拥有的原因 没有完全切换到它:我们的Windows.Forms实现使用 碳,因此,它不适用于64位单声道 MonoDevelop使用Carbon进行菜单集成,因此无法运行 在64位VM上。 MonoMac绑定尚未移植到64位。
答案 1 :(得分:1)
如上所述,问题是由于在64位模式下使用SGen垃圾收集器。那里显然还有一些漏洞。