3
當內存清潔劑正在使用時,我想清除FD_ZERO
和FD_SET
上的誤報。清除它有點容易:如何確定何時使用-fsanitize = memory?
#include <sanitizer/msan_interface.h>
...
__msan_unpoison(&readfds, sizeof(readfds));
__msan_unpoison(&writefds, sizeof(writefds));
但是,我不知道如何檢測何時使用內存消毒劑。即,在命令行上指定-fsanitize=memory
時檢測。預處理似乎並不被幫助:
$ clang -dM -E -fsanitize=memory - </dev/null | egrep -i 'memory|sanitize|msan'
$
我怎麼能確定何時-fsanitize=memory
在使用?
作爲解決方法,有'-DSANITIZED_MEMORY' –