【发布时间】:2012-03-25 07:40:30
【问题描述】:
我正在为一个相当大的 MonoTouch 应用程序构建系统,该应用程序使用了许多跨平台组件。结果,我们经常遇到这样一种情况,其中一个跨平台组件执行了一些无法编译的操作。如果实际执行了某些操作,则设备构建将崩溃。那时,我们必须追踪崩溃发生的位置,找到有问题的方法,并将其破解,这样它就不会尝试在 MonoTouch 构建中进行 JIT。
我的问题是,有没有办法在构建过程中检测到这些东西?起初,我们有一个正则表达式试图检测通用虚拟方法,但某些类型的 LINQ 和 lambdas 也会尝试 JIT,我宁愿不尝试编写自己的解析器来检测它们全部。我试过使用monodis AssemblyName.dll,它会给我很多缺失的方法错误,但它们中的大多数似乎是无害的——即使它们不是,它也不会告诉我对所说方法的引用在哪里以便我可以看到需要做什么。最重要的是,有时它会在程序集结束之前与Abort trap: 6 或Bus error: 10 一起崩溃,这非常无益。有没有更好的方法可以检测构建过程中的 JIT 尝试?
【问题讨论】:
标签: c# .net xamarin.ios jit aot