2013-02-17 86 views
1

我很难确定哪些预处理器宏可以用于(1)调试工具(比如选中的迭代器)和(2)安全相关的项目。BOOST加固指南(预处理器宏)

我看起来似乎找到的是Preprocessor Metaprogramming(链接自www.boost.org/libs/preprocessor/)。

UPDATE(02-18-2013):我发现Boost Macro Reference,但它缺少与调试或安全相关的任何内容。

有没有人知道可用于调试和安全的预处理器宏列表或加固指南?

+0

答案可能特定于增强库,哪些是你的目标? – 2013-02-18 00:50:07

+0

谢谢@Sam。至于哪个库 - 它们都是。 Boost据说有编码需求,质量检查等等。所以我期望他们有类似于GCC的'_GLIBCXX_DEBUG'或微软的'_HAS_ITERATOR_DEBUGGING'的东西。还是提升拾取这些宏(并尊重其他人,如DEBUG和_DEBUG)? – jww 2013-02-18 09:27:19

回答

1

在任何boost库中都没有真正的任何等价物。其中一些尊重NDEBUG并根据此优化(并且还有一些断言NDEBUG将禁用),因此设置NDEBUG用于发布但不调试似乎是预期的(是否将NDEBUG未定义为释放计数为“硬化”I不知道)。但是,当然没有任何一种库可以提供超出其他装甲或可调试性的选项。

如何Boost库应该与微软的_HAS_ITERATOR_DEBUGGING互动,特别_SECURE_SCL是一个反复出现的辩论见,例如hereherehere(对于“仅标头”库它并没有太大的差别,它更使的问题肯定提供的DLL与集成商所期望的兼容,并且没有关于是否应该使用MS默认这些选项的普遍一致意见,因为很多人都对性能开销表示怀疑)。

+0

谢谢@timday。我将在[C-Based Toolchain Hardening](https://www.owasp.org/index.php/C-Based_Toolchain_Hardening#Additional_Macros)中记录一下。 Jeff – jww 2013-02-18 12:41:16

+0

是你的名字“Tim Day”吗?我想在OWASP文章中引用你。 – jww 2013-02-18 12:45:59

+0

是的,没关系。现在我已经看到了上下文,在上面添加了更多链接。 – timday 2013-02-18 16:36:27