Как я могу сказать valgrind, чтобы memcheck раздвоенные процессы?
У меня есть процесс x
, который я хочу проверить на утечки с помощью valgrind
. Проблема в том, что x
выполняется y
, а y
в свою очередь запускается z
. Я не могу запустить автономный x
, потому что y
и z
настроить среду для x
, например, переменные среды, ключи командной строки, файлы, необходимые для x
и т.д.
- Есть ли способ, которым я могу сказать
valgrind
для запуска на z
, но следовать за любыми вилками, которые он находит и сообщает об этом тоже?
- Есть ли способ, которым я могу сказать
valgrind
следовать за любыми вилками, но только сообщать о процессе с именем x
?
- Есть ли способ, который я могу сказать
valgrind
для присоединения к уже запущенному процессу, как я могу это сделать с gdb?
Я не знаю, если это имеет значение, но я работаю под SuSE64 linux и valgrind-2.4.0.
Спасибо!
Ответы
Ответ 1
- Valgrind следует за forked процессами, когда задан параметр
--trace-children=yes
.
- Вы должны быть в состоянии достичь этого, используя подходящие фильтры.
- Нет. Valgrind перехватывает код загрузки модуля с помощью LD_PRELOAD, поэтому привязка к запущенному процессу невозможна.