Що таке подвійний безкоштовний або корупційний топ?
Подвійне безкоштовне або корупція, ймовірно, означає це free було викликано двічі для того самого блоку пам’яті, або те, що було перезаписано, чого не мало бути, напр. переповнення масиву або щось подібне. Це могло статися глибоко в самій Julia або в якійсь бібліотеці C, яку викликає ваш код.
Помилка подвійного звільнення виникає, якщо free() викликається кілька разів з тією самою адресою пам’яті. Приклад подвійної вільної атаки. Виклик free() двічі для одного значення спричиняє витік пам’яті. Якщо програма двічі викликає free() з однаковими аргументами, це пошкоджує структуру даних керування пам’яттю програми.
Ви запустіть свою програму в налагоджувачі часу виконання (gdb) і подивіться, де вона зламається. Цього мало б бути достатньо, щоб знайти, де відбувається подвійне звільнення.
Double free: основи Double free – це a недолік керування пам’яттю, який виникає, коли програма двічі звільняє той самий блок пам’яті за допомогою функції free() або delete. Небезпечні для пам’яті мови, такі як C++, особливо схильні до цієї вразливості.
помилка "подвійне безкоштовне або пошкодження". виникає, коли ви намагаєтеся звільнити блок пам’яті, який уже звільнено, або коли ви ненавмисно змінюєте пам’ять, чого не слід, що спричиняє пошкодження.
Корупцію можна визначити та класифікувати різними способами. Найбільш поширеними видами або категоріями корупції є корупція між пропозицією та попитом, велика проти дрібної корупції, традиційна проти нетрадиційної корупції та державна проти приватної корупції.