Действительно ли возможно заставить valgrind проигнорировать определенные библиотеки?

Или предпочтительно все они вместо просто моего кода? Моя программа использует Gtk, Крикуна и немного других вещей, и эти два (и некоторые позади них, libgcrypto, libssl) вызывают самих столько ошибок, что я не могу обнаружить свое собственное. Действительно ли возможно заставить valgrind проигнорировать вещи, прибывающие из глубже, чем мой собственный код?

50
задан JohnnyHK 8 February 2013 в 10:57
поделиться

2 ответа

Вы можете сгенерировать подавление ошибок для библиотек, но я не думаю, что вы можете вообще исключить библиотеки.

Также трудно автоматически определить, вызвана ли ошибка памяти в библиотеке проблемой в вашем коде или нет.

10
ответ дан 7 November 2019 в 11:07
поделиться

В частности, с OpenSSL это очень сложно. Ключи шифрования SSL частично основаны на неинициализированном мусоре стека, что означает, что все расшифрованные данные тоже заражены. Это заражение имеет тенденцию распространяться за пределы самого OpenSSL.

Здесь может помочь компиляция OpenSSL с опцией «PURIFY». К сожалению, из-за некоторых плохо продуманных действий основного дистрибутива Linux это вряд ли станет дефолтом.

Очень простой обходной путь - опция memcheck - undef-value-errors = no .

6
ответ дан 7 November 2019 в 11:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: