Комбинация ARM6/FreeBSD не поддерживается.
Команда valgrind doesn't support FreeBSD at all, а люди, которые поддерживают FreeBSD port, ограничили ее до i386 и AMD64, потому что это текущие архитектуры Tier 1.
Угадайте, поддержка valgrind для ARM не будет реализована до тех пор, пока ARM не станет платформой уровня 1 или пока кто-то не сделает шаг вперед, чтобы выполнить портирование.
Смотрите также заявление команды VALGRIND по портированию:
Maintaining each port takes a lot of effort, more so than for most other programs. Valgrind is fragile due to the low-level nature of what it does. Also, each platform port has CPU-specific code, OS-specific code and platform-specific code, and testing all the combinations is difficult.
Update:
На FreeBSD вы можете использовать очень мощный dtrace
инструмент для мониторинга производительности и отладки. Тем не менее, у него есть крутая кривая обучения.
Мой любимый инструмент для отладки по-прежнему размещает printf()
в стратегических местах. Предположим, что ваша программа сработала в большом блоке кода. Поместите printf
посередине, перекомпилируйте и повторно запустите. Если вы видите выход, ошибка возникла после printf
. Если вы этого не сделали, это было до printf
. Вы уменьшили вдвое размер блока, содержащего ошибку. Теперь добавьте еще printf
в середине оставшегося подозрительного кода и повторите. Этот метод называется делом пополам. Вы также можете использовать его для контроля значения переменной.
Я хотел бы предложить, чтобы обернуть отладки printf
в макро ([1], [2]), так что вы можете оставить их в коде, но их можно отключить для построения релиза.
Большое спасибо за ваш ответ. Итак, какие существуют опции для отладки программ, написанных на языке C (кроме 'gdb') на FreeBSD/ARM? –
@ GeorgeGaál См. Обновленный ответ. –