Openssl 编译器标志-DPURIFY的用途是什么?

Openssl 编译器标志-DPURIFY的用途是什么?,openssl,compiler-flags,Openssl,Compiler Flags,我遇到了一个构建开放SSL源代码的makefile,我想知道通过定义PURIFY标志执行了哪些操作? 我在谷歌搜索了一下,但只找到了一个引用,引用了它的用途,而没有解释它的用途 编译器标志-DPURIFY的用途是什么 它有助于抑制purify分析源代码时产生的杂散噪声。例如,Purify会抱怨在未初始化变量时使用了未初始化变量,比如当PRNG在堆栈或堆上植入垃圾时。大多数情况下,这是程序员的错误。但在这种特殊情况下,这是出于设计 在提升警告时进行干净编译是一门绝无仅有的艺术。当使用-Wall-W

我遇到了一个构建开放SSL源代码的makefile,我想知道通过定义PURIFY标志执行了哪些操作? 我在谷歌搜索了一下,但只找到了一个引用,引用了它的用途,而没有解释它的用途

编译器标志-DPURIFY的用途是什么

它有助于抑制purify分析源代码时产生的杂散噪声。例如,Purify会抱怨在未初始化变量时使用了未初始化变量,比如当PRNG在堆栈或堆上植入垃圾时。大多数情况下,这是程序员的错误。但在这种特殊情况下,这是出于设计

在提升警告时进行干净编译是一门绝无仅有的艺术。当使用
-Wall-Wextra-Wconversion
时,我可以清楚地编译一个安全门。对于一个没有这样设置的项目来说,这可能是相当痛苦的。我还要求在其他工具下保持清洁,如Clang/GCC及其消毒剂(
-fsanitze=undefined
-fsanitize=address
)和Valgind


几年前,Purify下的清洁分析是导致这种情况的原因。Debian的人试图压制一项发现。(Debian PRNG bug中出现了一些错误。这是一个关于飞机为什么坠毁的练习)。

谢谢,我甚至不知道Purify是一个软件包。我现在想知道我们是否需要使用它,或者旗帜是否需要在那里。@yamex5-是的,它不像其他产品那样受欢迎,比如Clang-ot GCC的消毒剂。那是因为成本太高。但这是一个非常好的工具。我还添加了关于Debian PRNG错误的信息。