mirror of
https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux
synced 2025-11-06 19:16:30 +10:00
Docs/zh_CN: Update the translation of testing-overview to 5.19-rc8
Update to commit 12379401c0 ("Documentation: dev-tools:
Add a section for static analysis tools")
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Reviewed-by: Alex Shi <alexs@kernel.org>
Link: https://lore.kernel.org/r/b9911916446f858fe95e4d4bfeaecdab14bc0b6a.1658983157.git.siyanteng@loongson.cn
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
6a5057e9dc
commit
63c1d2516b
@ -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。
|
||||
|
||||
不过要注意的是,静态分析工具存在**假阳性**的问题。在试图修复错误和警
|
||||
告之前,需要仔细评估它们。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user