Как я могу определить, была ли обнаружена какая-либо ошибка Хелгриндом (valgrind)? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть скрипт bash, который должен определить, была ли Хелгринд выдана какая-либо ошибка.Я попытался использовать следующее:

thread_race=$(valgrind --error-exitcode=10 --tool=helgrind ./$2.out $3; echo $?)

$ 2 - это файл .cpp, а $ 3 - аргумент.Однако это не работает, потому что на самом деле это не меняет код завершения.

Я бы ожидал, что thread race будет 10, если обнаружатся какие-либо ошибки, и что-то еще в противном случае.

Есть ли способ узнать, обнаружил ли helgrind какие-либо ошибки вообще, и затем сохранить ответ?Я использую Ubuntu Linux с Clang ++.

EDIT: В обоих случаях, когда helgrind обнаруживает ошибку и не обнаруживает ошибку, thread_race возвращает 134.

У меня есть похожий тест без helgrind, который отлично работает;

leak=$(valgrind --leak-check=full --error-exitcode=55 ./$2.out $3 >/dev/null; echo $?)

Это приведет к изменению кода выхода на 55 при появлении ошибки.Я был уведомлен, что --leak-check = full необходим для правильных кодов выхода, использование которых приводит к большему количеству ошибок при использовании helgrind:

thread_race=$(valgrind --leak-check=full --error-exitcode=10 --tool=helgrind ./$2.out $3; echo $?)

output

valgrind: Unknown option: --leak-check=full

и thread_race= 1

...