我遇到了构建开放SSL源的makefile,我想知道通过定义PURIFY标志执行了哪些操作? 我google了一下,但只找到了引用它的参考,而不是它的作用的解释。
答案 0 :(得分:1)
编译器标志-DPURIFY的目的是什么?
它有助于抑制purify分析源代码时产生的杂散噪声。例如,当变量意图未初始化时,Purify会抱怨使用未初始化的变量,例如当PRNG在堆栈或堆上播种垃圾时。大多数情况下,这是一个程序员错误。但在这种特殊情况下,它的设计。
提升警告的清洁编译是一种与众不同的艺术。使用-Wall -Wextra -Wconversion
时,我会编译一个安全门。对于没有这样设置的项目来说,这可能会非常痛苦。我还需要其他工具的清洁度,如Clang / GCC及其消毒剂(-fsanitze=undefined
和-fsanitize=address
)和Valgind。
Purify下的清洁分析是几年前Debian Random Number bug的原因。 Debian人试图压制一个发现。 (在Debian PRNG bug中出现了一些问题。这是为什么飞机坠毁的一个练习。)