Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
GCC 有许多消毒剂(例如,泄漏、地址、线程)。但是其中许多都需要对代码进行仪表化,并且不能与其他人一起使用。因此,如果在实践中我想应用所有消毒剂以确保我的代码运行良好,那么使用所有这些消毒剂的推荐程序是什么?
我使用 CMake 管理我的项目
一些消毒剂可以在同一运行中组合在一起:Asan+UBsan+Lsan(如果您的程序没有故意的无符号溢出,则可以选择 Isan)。所有其他消毒剂(例如 Tsan 或 Msan)都需要单独的 QA 运行(这意味着每次运行都重建 SW)。此外,您很可能需要为 Valgrind 运行专用 CI(它可以检测到 Asan 无法检测到的一些错误,并且由于实现细节,它不能应用于已清理的代码)。