4
Скажем, у меня есть следующая программа:Как прекратить программу clang-instrumented, когда clang-sanitizer обнаруживает ошибку?
#include <iostream>
float foo(float f)
{ return (f/0); }
int main(void) {
foo(1.0f);
std::cout << "hello" << std::endl;
}
Если я вызываю clang++ -fsanitize=undefined main.cpp && ./a.out
то он выведет:
main.cpp:4:32: runtime error: division by zero
hello
Есть ли способ прекратить a.out
как только обнаружена ошибка? То есть таким образом, чтобы она отображала:
main.cpp:4:32: runtime error: division by zero
без отображения hello
на следующей строке? (Потому что это будет прекращено раньше)
Связанные: http://stackoverflow.com/q/30809022/420683 -> вы можете использовать переменная среды 'UBSAN_OPTIONS = halt_on_error = 1' – dyp