Valgrind: подавить memcheck во время запуска - PullRequest
0 голосов
/ 20 марта 2019

Есть ли способ подавить проверку памяти Вальгринда до тех пор, пока не будет достигнуто определенное (каким-либо образом обозначенное мной) стабильное состояние; то есть запуск приложения завершен, и я только хочу начать отслеживать новые распределения с этого момента. Либо на основе времени, либо с использованием сигнала Unix или аналогичного механизма.

1 Ответ

1 голос
/ 20 марта 2019

memcheck должен отслеживать всю выделенную (и освобожденную) память: если он будет отслеживать память только с некоторого момента времени, то все обращения к памяти, выделенной до этого времени, будут рассматриваться как доступ к нераспределенной памяти.

Теперь, в зависимости от того, что вы хотите «не видеть» перед этим стабильным состоянием, есть вещи, которые вы можете сделать.

Если вы не хотите видеть ошибки до стабильного состояния, вы можете вызвать VALGRIND_DISABLE_ERROR_REPORTING каккак только ваше приложение запустится, и вызовите VALGRIND_ENABLE_ERROR_REPORTING, когда будет достигнуто стабильное состояние.

Если вы хотите увидеть, есть ли представление о том, сколько памяти выделено после этого стабильного состояния, вы можете выполнить поиск утечки памятикогда достигается стабильное состояние, чтобы показать состояние памяти.После этого вы можете выполнить «дельта-поиск утечек», который показывает, что было выделено / освобождено после предыдущего поиска утечек.

Вы можете сделать это в интерактивном режиме из оболочки, используя vgdb, или использовать GDB + vgdb для установкиТочки останова в вашей программе и выполняйте вышеуказанные действия в точных местах вашей программы.

См., например, http://www.valgrind.org/docs/manual/manual-core-adv.html и http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands для получения дополнительной информации.

...