Reviewed-by: Alex Shi <alexs@xxxxxxxxxx> On 7/25/22 17:23, Yanteng Si wrote: > Update to commit 12379401c000 ("Documentation: dev-tools: > Add a section for static analysis tools") > > Signed-off-by: Yanteng Si <siyanteng@xxxxxxxxxxx> > --- > .../zh_CN/dev-tools/testing-overview.rst | 25 +++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/Documentation/translations/zh_CN/dev-tools/testing-overview.rst b/Documentation/translations/zh_CN/dev-tools/testing-overview.rst > index b7a1d13da6c6..d6f2c65ed511 100644 > --- a/Documentation/translations/zh_CN/dev-tools/testing-overview.rst > +++ b/Documentation/translations/zh_CN/dev-tools/testing-overview.rst > @@ -107,3 +107,28 @@ Documentation/dev-tools/kcov.rst 是能够构建在内核之中,用于在每 > 之后你就能确保这些错误在测试过程中都不会发生了。 > > 一些工具与KUnit和kselftest集成,并且在检测到问题时会自动打断测试。 > + > +静态分析工具 > +============ > + > +除了测试运行中的内核,我们还可以使用**静态分析**工具直接分析内核的源代 > +码(**在编译时**)。内核中常用的工具允许人们检查整个源代码树或其中的特 > +定文件。它们使得在开发过程中更容易发现和修复问题。 > + > + Sparse可以通过执行类型检查、锁检查、值范围检查来帮助测试内核,此外还 > + 可以在检查代码时报告各种错误和警告。关于如何使用它的细节,请参阅 > + Documentation/translations/zh_CN/dev-tools/sparse.rst。 > + > + Smatch扩展了Sparse,并提供了对编程逻辑错误的额外检查,如开关语句中 > + 缺少断点,错误检查中未使用的返回值,忘记在错误路径的返回中设置错误代 > + 码等。Smatch也有针对更严重问题的测试,如整数溢出、空指针解除引用和内 > + 存泄漏。见项目页面http://smatch.sourceforge.net/。; > + > + Coccinelle是我们可以使用的另一个静态分析器。Coccinelle经常被用来 > + 帮助源代码的重构和并行演化,但它也可以帮助避免常见代码模式中出现的某 > + 些错误。可用的测试类型包括API测试、内核迭代器的正确使用测试、自由操 > + 作的合理性检查、锁定行为的分析,以及已知的有助于保持内核使用一致性的 > + 进一步测试。详情请见Documentation/dev-tools/coccinelle.rst。 > + > + 不过要注意的是,静态分析工具存在**假阳性**的问题。在试图修复错误和警 > + 告之前,需要仔细评估它们。