如何在 QMake 中启用消毒剂?

How to enable sanitizers in QMake?

如何在 QMake 的 .pro 文件中启用消毒剂?

我发现了几个可以自行修改 QMAKE_CXXFLAGS 的资源,但是 introductory blogpost 说:

It is scheduled for the dev branch (Qt 5.2) because it’s a new feature, but you should be fine cherry-picking it to e.g. Qt 5.0. You can then configure Qt with -address-sanitizer, and run qmake CONFIG+=address_sanitizer for your own applications.

不过加CONFIG+=address_sanitizer好像没有效果

要启用地址消毒程序,您必须编写:

CONFIG += sanitizer sanitize_address

消毒剂选项在 Qt 的 mkspecs(mkspecs/features/sanitizer.prfmkspecs/common/sanitize.conf)中定义,当您添加 CONFIG += sanitizer 时加载。 快速查看我的 sanitizer.prf (Qt 5.7.0) 显示特定的消毒剂是:

  • sanitize_address
  • sanitize_memory
  • sanitize_thread
  • sanitize_undefined