我想在使用内存消毒剂时FD_ZERO
清除误报。FD_SET
清除它有点容易:
#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
使用?