gpt4 book ai didi

fxcop - 静态调用图分析解决了哪些问题?

转载 作者:行者123 更新时间:2023-11-30 23:50:13 31 4
gpt4 key购买 nike

希望在程序上使用静态调用图分析来发现哪些问题? FxCop 使用静态调用图分析,使用这种技术发现了什么问题?

http://msdn.microsoft.com/library/bb429476.aspx
http://en.wikipedia.org/wiki/Callgraph

抱歉我缺乏知识,我通过谷歌找到了一些信息,但担心它非常不完整。谢谢!

最佳答案

调用图本身就是这样;没有“错误”的调用图(除非您有禁止递归的样式检查)。

真正的问题是,要了解程序中某个点的代码可能会出现问题,您通常需要了解世界的形状(哪些数据结构是实时的,它们可能包含什么值,它们可能具有什么关系)该代码点处于事件状态的时刻。调用图显示了执行如何到达感兴趣的代码点,并且沿着该调用图路径的所有代码都设置了代码执行上下文。这使静态分析器能够生成“上下文敏感”分析,从而提供更准确的答案。

这导致了第二个问题:如何获得准确的调用图?如果您从 A 直接调用 B,则很容易写下“A 调用 B”并感觉这是一个准确的调用图事实。但是,如果 A 通过间接指针进行调用(你能说虚拟方法调度吗?),那么 A 调用的确切对象就不是那么清楚了;你最终会得到 A-might-call-B1, A-might-call-B2, ... A 实际调用的实际上取决于 A 执行的上下文... 哎呀,您需要调用图来制造调用图。好消息是你从底部构建调用图:“我知道这肯定是真的,所以那肯定是真的”。在分析仪无法弄清楚的地方,它通常会做出保守的猜测:(“所有这些调用都是可能的,我不能排除它们”)。这种保守主义是静态分析仪准确性的关键原因之一。

关于fxcop - 静态调用图分析解决了哪些问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5865663/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com