Я на самом деле перекодирую malloc, используя avl, и когда я тестирую его с помощью скрипта вроде:
#!/bin/sh
export DYLD_LIBRARY_PATH=.
export DYLD_INSERT_LIBRARIES="libft_malloc.so"
export DYLD_FORCE_FLAT_NAMESPACE=1`
$@
, а затем ./script ls или ./script vim, он работает хорошо.Но когда я вручную экспортирую переменные в моей оболочке, у меня появляется эта ошибка:
dyld: warning: could not load inserted library 'libft_malloc.so' into
library validated process because no suitable image found. Did find:
libft_malloc.so: code signing blocked mmap() of 'libft_malloc.so'
вот как использовать mmap:
pges_ctrl.header_pge = mmap(NULL, getpagesize() * NB_PAGES, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
if (pges_ctrl.header_pge == MAP_FAILED)
return (0);
и
tmp = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);
if (tmp == MAP_FAILED)
{
pges_ctrl.errors |= MMAP_BAD_ALLOC;
return NULL;
}
Если у вас есть представление о том, что может быть причиной этого, или как я могу это отладить, это очень поможет!Я работаю на Mac OSX Sierra 10.12.6
Скомпилировано с gcc -Wall -Wextra -Werror Спасибо за помощь!