C#静态数组绑定检查
是否有一个C#工具可以静态(不执行代码)检测出绑定外的数组访问,即抛出的数组访问 多谢各位C#静态数组绑定检查,c#,arrays,static-analysis,indexoutofboundsexception,formal-verification,C#,Arrays,Static Analysis,Indexoutofboundsexception,Formal Verification,是否有一个C#工具可以静态(不执行代码)检测出绑定外的数组访问,即抛出的数组访问 多谢各位 编辑:是的,我知道在一般情况下,理论上不可能做到这一点(即,它是不可判定的),但这并不意味着在某些情况下不可能做到这一点(事实上,整个形式验证领域是为理论上不可能的事情生产实用工具)。(我认为这不是特别需要的:)不,理论上是不可能的。这就是单元测试的目的;-) 不,理论上这是不可能的。这就是单元测试的目的;-) 正如托马斯和海因茨所说,这是无法确定的。您的问题有一个子集是可以解决的-您可以对.NET应用程
编辑:是的,我知道在一般情况下,理论上不可能做到这一点(即,它是不可判定的),但这并不意味着在某些情况下不可能做到这一点(事实上,整个形式验证领域是为理论上不可能的事情生产实用工具)。(我认为这不是特别需要的:)不,理论上是不可能的。这就是单元测试的目的;-) 不,理论上这是不可能的。这就是单元测试的目的;-) 正如托马斯和海因茨所说,这是无法确定的。您的问题有一个子集是可以解决的-您可以对.NET应用程序进行加密(或JIT),并查找对IndexOutOfRangeException抛出子例程的引用;如果绝对确定边界检查不会发生,MSIL->native编译器将消除边界检查(从而消除IndexOutofrangeException)
在实践中,这通常类似于(inti=0;i
在实践中,这通常类似于(inti=0;i