Подавление Valgrind и код возврата

#valgrind

#valgrind

Вопрос:

Похоже, что valgrind возвращает ненулевой код возврата при обнаружении утечки памяти, даже если они перечислены в файле подавления.

Ошибок не отображается, но все же код возврата равен 134. Это приводит к сбою всех моих сборок в jenkins… Есть ли способ обойти это или я делаю что-то не так?

Ответ №1:

Очень вероятно, что вы делаете что-то неправильно (или, возможно, используете старую версию valgrind с ошибками, приведенную ниже, с только что выпущенной версией 3.12) :

 valgrind --leak-check=full --errors-for-leak-kinds=all --error-exitcode=33
    --suppressions=t.supp ./memcheck/tests/trivialleak
...
==22750==         suppressed: 1,000 bytes in 1,000 blocks
...
echo $?
0
  

при отсутствии файла подавления:

 valgrind --leak-check=full --errors-for-leak-kinds=all --error-exitcode=33
    ./memcheck/tests/trivialleak
...
==22760== 1,000 bytes in 1,000 blocks are definitely lost in loss record 1 of 1
...
echo $?
33
  

Комментарии:

1. это может быть связано с тем, что переменная среды отображения не установлена, поэтому она прерывает программу, это мое лучшее предположение. 134-128 = 6 = SIGABRT