Я использую GCC 4.8.1 с включенной опцией очистки адресов, т.е. я компилирую и связываю, используя -fsanitize=address
. С этой старой версией GCC не обеспечивает достойный результат. Ему нужен символизатор. Нет необходимости в дополнительных приложениях в более новых версиях. Я не могу установить пакеты LLVM на целевую машину, поэтому мой вопрос: возможно ли выполнить анализ в автономном режиме? Я имею в виду: могу ли я получить вывод с целевой машины, а затем проанализировать результат с помощью символизатора на машине разработки?
Очиститель адресов Gcc в автономном режиме
comment
Какая версия gcc на другой машине? GCC ABI должны быть совместимы между этими машинами. Вам понадобится статическая библиотека символизатора для связи с ним.
- person KamilCuk   schedule 01.09.2018
comment
всегда 4.8.1, но с llvm-symbolizer
- person greywolf82   schedule 01.09.2018
Ответы (1)
Вы можете передать несимволизированный вывод очищенного исполняемого файла в скрипт asan_symbolize либо на целевой машине, либо на машине разработки.
Обратите внимание, что по умолчанию asan_symbolize
пытается найти символы в исполняемых файлах на машине, на которой он запущен. Если целевые исполняемые файлы и исполняемые файлы разработки не совпадают, вам нужно будет использовать флаг -s
для указания целевого sysroot.
person
yugr
schedule
02.09.2018