Я пытаюсь отладить повреждение кучи (используя отладчик QIRA); это работает только с Malloc Дуга Ли.
Я попытался сделать следующее:
LD_PRELOAD=./malloc.so qira ./program $(cat shfree5)
Я получаю следующую ошибку:
ОШИБКА: ld.so: объект './malloc.so' из LD_PRELOAD не может быть предварительно загружен (неправильный класс ELF: ELFCLASS32): игнорируется.
это происходит потому, что загрузчик пытается связать x86 malloc.so
с x64 qira
.
Я хочу применить LD_PRELOAD
только к ./program
, а не к qira
; Я пробовал с помощью команды env
, но не могу заставить ее работать.
Заранее спасибо!
LD_*
в Linux с треском проваливается в смешанной 32/64-битной среде. См. stackoverflow.com/questions/36849507/ для некоторых вещей, которые могут помочь. - person Andrew Henle   schedule 08.02.2021env LD_PRELOAD=./malloc.so ./program ...
должен работать, если у вас есть реализацияenv
, которая работает подqira
. - person Peter Cordes   schedule 09.02.2021LD_PRELOAD
ing debugmalloc
. - person Employed Russian   schedule 09.02.2021