Valgrind 可以捕获各种未定义的行为吗?

ks1*_*322 4 c++ valgrind undefined-behavior

换句话说,如果我的程序运行时没有任何 Valgrind 错误消息,我能否确定它没有未定义行为?

Dav*_*nan 5

一旦程序被编译,行为就被定义了。如果您想检测未定义的行为,您需要在工具链的早期开始。

未定义的行为意味着由编译器实现来决定如何实现行为,标准没有规定行为必须是什么。换句话说,问UB只对源代码有意义,对编译后的代码没有意义。