#linker #loader #address-sanitizer
#компоновщик #загрузчик #адрес-дезинфицирующее средство
Вопрос:
Допустим, у меня есть двоичный файл foo и bar . Они оба ссылаются на библиотеку baz. Я хочу включить ASAN только для процесса foo, но не для панели процессов. Я создаю две версии baz, одну с инструментарием ASAN (упакуйте ее в /pkg/asan/lib/), а другую без asan (упакуйте ее в /pkg / lib).
Я хочу, чтобы процесс foo был связан / загружен в libbaz из /pkg/asan/lib/ , но хочу, чтобы панель процессов связывала / загружала библиотеку из /pkg /lib.
В любом случае во время компиляции я могу указать foo, чтобы сначала проверить, присутствует ли библиотека в /pkg/asan/lib , если нет, перейдите по ссылке с библиотекой из /pkg /lib.
Ответ №1:
В любом случае во время компиляции я могу указать foo, чтобы сначала проверить, присутствует ли библиотека в /pkg/asan/lib , если нет, перейдите по ссылке с библиотекой из /pkg /lib.
Конечно: при связывании foo
с AddressSanitizer добавьте -L/pkg/asan/lib -Wl,-rpath=/pkg/asan/lib
опции.