【发布时间】:2012-07-25 16:58:15
【问题描述】:
在 MonoTouch 下,以下代码行编译,但生成 InvalidProgramException:
var bytes = new byte[,]{};
System.InvalidProgramExceptionInvalid IL code in Foo: IL_0038: newobj 0x0a000012
但是,以下操作在运行时不会失败:
var bytes = new byte[,]{{}};
我可以使用第二个表达式。但是,第一个有什么问题吗?如果是这样,它不应该编译失败吗?
【问题讨论】:
-
这看起来像是内存损坏,但很难判断,因为细节将在 unsafe 块中使用的(未提供的)参数/变量中。你能提供更多细节吗?包括哪一行抛出这个异常?
-
您是否尝试过在程序集上运行 PEVerify?
-
经过调查,我找到了罪魁祸首。调试器不会进入带有违规行的方法。我已经更新了问题。
标签: mono xamarin.ios interop il