Очиститель адресов Gcc в автономном режиме

Я использую GCC 4.8.1 с включенной опцией очистки адресов, т.е. я компилирую и связываю, используя -fsanitize=address. С этой старой версией GCC не обеспечивает достойный результат. Ему нужен символизатор. Нет необходимости в дополнительных приложениях в более новых версиях. Я не могу установить пакеты LLVM на целевую машину, поэтому мой вопрос: возможно ли выполнить анализ в автономном режиме? Я имею в виду: могу ли я получить вывод с целевой машины, а затем проанализировать результат с помощью символизатора на машине разработки?


person greywolf82    schedule 01.09.2018    source источник
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