пределы valgrind на FreeBSD - PullRequest
       33

пределы valgrind на FreeBSD

2 голосов
/ 20 января 2020

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

До того, как профилируемая программа даже достигает точки, которую я sh должен профилировать, она запускается, поскольку вызовы mmap начинают давать сбой. Эти вызовы выполняются успешно, когда он не находится под valgrind.

Существует ли какое-то ограничение на число отображений файлов / отображаемой памяти, которое возможно при использовании valgrind?

Размер отображаемых файлов: большой (всего около 600 Гб)

1 Ответ

2 голосов
/ 21 января 2020

По умолчанию valgrind не поддерживает столько памяти. На linux значение по умолчанию (жестко закодировано в источниках) составляет 128 ГБ.

Обратите внимание, что объем памяти был увеличен с 64 ГБ до 128 ГБ в коммите e706fbfa9fa563e81d6dc09de2bf785b2c34e84e.

Изменения в этом коммите будут укажите на необходимые изменения, чтобы еще больше увеличить максимальный объем памяти, поддерживаемый valgrind.

Файл coregrind / m_aspacemgr / aspacemgr- linux. c содержит комментарии, объясняющие стратегию управления памятью и сопоставлениями. Это указывает на то, что возможно будет принято фиксированное отображение размером больше 128 ГБ, если вы отобразите его выше (текущего linux) предела 128 ГБ. (Я не пробовал это, так что это требует подтверждения).

Есть и другие жестко закодированные максимумы, например, максимальное число сегментов (в linux) определено как 30000 в aspacemgr- linux. c.

...