使用 Address Sanitizer 编译程序时出错

Error compiling program with Address Sanitizer

我正在尝试使用 Address Sanitizer (ASan) 编译程序 (tarantool),我 运行 出现以下错误:

/home/tarantool/src/fiber.c:123:2: error: implicit declaration of function '__sanitizer_start_switch_fiber' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ASAN_START_SWITCH_FIBER(asan_state, 1,

我无法找出这个问题的原因。有人能指出我正确的方向吗?

根据标签,您正在使用 GCC。光纤接口仅在 Clang this summer and merged to yet-to-be-released GCC 7 in November 中实现。所以看来你应该切换到 Clang 或等到 GCC 7 发布(或使用 pre-release 版本)。

作为旁注,您可以将此问题报告给 tarantool 开发人员,以便他们检查编译器版本并以更友好的方式报告错误。