2013-02-17 106 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