代码中出现未定义行为,最初可能不会产生任何问题,但是随着代码的复杂度提高,未定义行为可能造成程序崩溃或发生错误,检测出根源会变得更加困难。UBSan(Undefined Behavior Sanitizer)可以检测代码中出现的未定义行为,帮助用户清除未定义行为引起的运行时错误。
常见的未定义行为有:
该功能从DevEco Studio 5.1.0 Release版本开始支持。
ASan、TSan、UBSan、HWASan不能同时开启,只能开启其中一个。
可通过以下两种方式开启UBSan。
点击Run > Edit Configurations > Diagnostics,勾选Undefined Behavior Sanitizer开启检测。
"arguments": "-DOHOS_ENABLE_UBSAN=ON"
无论编译模式是debug或release,均有链接可直接跳转至源码。