首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >静态分析和符号执行中的错误检测

静态分析和符号执行中的错误检测
EN

Stack Overflow用户
提问于 2016-07-23 17:09:34
回答 1查看 289关注 0票数 1

什么类型的错误静态分析(例如编译器)可以检测到,而符号执行不能检测到?哪些类型的错误是符号执行可以检测到的,而静态分析是不能检测到的?例如,符号执行可以检测语法错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-24 22:00:16

简而言之,静态分析能够发现编码问题,例如不良实践。例如,如果您(不必要地)将类字段声明为public,则静态分析工具可能会警告您应将此类字段声明为private。然而,“最干净”的代码不一定没有bug。尽管在一些代码中没有发现任何不当行为,但代表编码器的不正确推理可能会导致(稍后)运行时崩溃。

例如,如果我们开发干净的代码来实现计算器,那么静态分析工具不会输出任何警告,但是如果我们忘记验证输入以防止用户尝试除以零,那么我们的计算器最终会在运行时崩溃。

另一方面,符号(或Concolic)执行执行目标程序,因此它们有可能实现程序的任何可能的运行时执行状态,例如引发由错误引起的运行时错误。在上面描述的计算器示例中,符号执行将发现运行时故障,并将告诉我们哪些输入导致了这种故障。为了回答你的最后一个问题,符号执行并不意味着检查代码的质量。

理想情况下,我们应该在发布软件之前使用这两个工具。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38540082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档