Я столкнулся с проблемой с ubsan при запуске apk третьей части и не уверен, что привело к сбою. И я обнаружил, что это потому, что мой Android.mk добавляет следующие правила:
LOCAL_SANITIZE := unsigned-integer-overflow signed-integer-overflow
Я проверил руководство google ubsan Очистка целочисленного переполнения , и получил ответ, добавив правило так:
LOCAL_SANITIZE_DIAG := unsigned-integer-overflow signed-integer-overflow
Я отлично работаю, когда тестирую код на С ++ и просто проверяю, будет ли он печатать журнал, и работает нормально:
testsize/errorFunc.cpp:15:7: runtime error: unsigned integer overflow: 0 - 2 cannot be represented in type 'unsigned int'
но меня смущает то, что когда мое приложение вызывает функцию jni и, наконец, вызывает ту же функцию двоичного файла C ++. Журнал не генерируется, нужно ли apks что-то особенное для использования UBsan?