Разница malloc_default_zone между macOS Monterey и VenturaC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Разница malloc_default_zone между macOS Monterey и Ventura

Сообщение Гость »


Я запускаю этот код в Монтерее, скомпилированный с помощью Apple clang 14.0.0, и там вызывается пользовательская функция my_malloc. Когда я запускаю тот же код в Ventura, скомпилированный с помощью Apple clang 14.0.3, my_malloc не вызывается.

#include #include #include void *(*system_malloc)(malloc_zone_t *zone, size_t size); void *my_malloc(malloc_zone_t *zone, size_t size) { убить (0, СИГАБРТ); вернуть 0; } недействительный setup_intercept () { malloc_zone_t *zone = malloc_default_zone(); system_malloc = зона->malloc; зона->malloc = my_malloc; } недействительный обратный_перехват () { malloc_zone_t *zone = malloc_default_zone(); зона->malloc = system_malloc; } int main(int argc, char* argv[]) { setup_intercept(); void* v = malloc(42); обратный_перехват(); вернуть 0; } В чем здесь разница? Я вижу, что исходная версия LLVM Clang изменилась с 14 на 15 между этими версиями Apple Clang.

В Compiler Explorer сборка выглядит немного иначе. В Clang 14 достаточно вызова malloc. В Clang 15 есть вызов malloc@PLT. Однако я не уверен, связано ли это с проблемой с malloc_default_zone.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»