Как мне сказать valgrind, чтобы memcheck разветвлял процессы? - PullRequest
31 голосов
/ 19 ноября 2008

У меня есть процесс x, который я хочу проверить на утечки с помощью valgrind. Проблема в том, что x запускается y, а y в свою очередь запускается z. Я не могу запустить x в автономном режиме, потому что y и z устанавливают среду для x, такую ​​как переменные среды, параметры командной строки, файлы, необходимые для x и т. Д.

  1. Можно ли как-то сказать valgrind работать на z, но следовать за любыми найденными форками и сообщать о них тоже?
  2. Можно ли как-то сказать valgrind следовать за любыми вилами, но только сообщать о процессе с именем x?
  3. Можно ли как-нибудь сказать valgrind присоединиться к уже запущенному процессу, как я могу это сделать с GDB?

Не знаю, имеет ли это значение, но я работаю под SuSE64 linux и valgrind-2.4.0.

Спасибо!

1 Ответ

37 голосов
/ 19 ноября 2008
  1. Valgrind следует за разветвленными процессами, когда им предоставлена ​​опция --trace-children=yes.
  2. Этого можно добиться, используя подходящие фильтры.
  3. Нет. Valgrind подключается к коду загрузки модуля с помощью LD_PRELOAD, поэтому присоединение к запущенному процессу невозможно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...