Альтернатива MacOS Valgrind?

Я использую MacOS Big Sur и пытаюсь установить valgrind для выполнения задания.

brew install valgrind в настоящее время не работает, и установка из дистрибутива tar.bz2 тоже не работает.

Запуск ./configure (согласно инструкциям readme) возвращает это в конце:

checking for a supported OS... ok (darwin20.1.0)
checking for the kernel version... unsupported (20.1.0)
configure: error: Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x, 14.x, 15.x, 16.x and 17.x (Mac OS X 10.6/7/8/9/10/11 and macOS 10.12/13)

Судя по этому, похоже, что valgrind не работал на последних двух выпусках MacOS.

Есть ли альтернатива текущим выпускам MacOS или сейчас подходящее время для создания раздела на жестком диске для Linux? Или мне что-то не хватает с установкой?


person breakthatbass    schedule 25.11.2020    source источник
comment
Если вы используете обычные инструменты разработки для Mac через Xcode, есть встроенные способы делать такие же вещи: Address Sanitizer, Thread Sanitizer, Instruments ....   -  person Phillip Mills    schedule 25.11.2020
comment
У меня нет личного опыта работы с этой версией, но вы можете попробовать: github.com/LouisBrunner/valgrind-macos   -  person Phillip Mills    schedule 25.11.2020
comment
@PhillipMills, спасибо! Это работает примерно так же.   -  person breakthatbass    schedule 25.11.2020
comment
Также рассмотрите /usr/bin/leaks, часть инструментов разработчика Xcode.   -  person trashgod    schedule 19.04.2021


Ответы (1)


Как упоминалось в комментариях, репозиторий Луи Бруннера на github - ваш лучший выбор на данный момент. Это должно дать вам хотя бы минимально функциональную сборку.

Помимо обычных изменений номера версии, одним из самых серьезных изменений в Big Sur является тот факт, что системные библиотеки кэшируются (и скрываются) с помощью dyld. Итак, прямо сейчас Valgrind не может читать libsystem_malloc.dylib, чтобы определить адрес таких функций, как malloc, чтобы их можно было перенаправить.

Если кто-то хочет нанести удар по нему, я предполагаю, что вам нужно будет следовать этим инструкциям и измените initimg-darwin.c так, чтобы избегать dyld_cache_value.

person Paul Floyd    schedule 26.11.2020