Ограничение Valgrind для определенной функции - PullRequest
8 голосов
/ 08 июня 2011

У меня есть большая программа для запуска. Использование valgrind требует нескольких часов для запуска. Я слышал, что есть кое-что, где мы можем вызывать valgrind для определенной функции в программе. И остальная часть программы будет выполнена нормально (без valgrind env). Кто-нибудь может мне помочь с этим. Я попытался найти его через Интернет, возможно, мне не хватает слова для поиска.

Ответы [ 2 ]

8 голосов
/ 13 октября 2011

Все зависит от того, какой инструмент вы хотите использовать. Для callgrind (профилировщик в valgrind) есть опция --toggle-collect = function, которая позволяет вам собирать информацию внутри определенной функции и всех ее дочерних элементов.

Однако, если инструмент, который вас интересует, это memcheck (для обнаружения утечек / ошибок памяти), тогда опция командной строки недоступна.

1 голос
/ 08 июня 2011

Поиск в Google "только для определенной функции профиля valgrind" и переход "Я чувствую себя счастливым"

В дополнение к включению инструментов, вы также должны включить сбор событий для частей вашей программы, которые вас интересуют.По умолчанию сбор событий включен везде.Вы можете ограничить сбор определенной функцией, используя --toggle-collect = function.Это переключит состояние сбора при входе и выходе из указанных функций.Когда эта опция действует, состояние сбора по умолчанию при запуске программы отключено.Будут собраны только события, происходящие во время работы внутри данной функции.Рекурсивные вызовы данной функции не вызывают никаких действий.

Подробнее здесь

...