Подтвердить что ты не робот

Что может привести к ошибке "поврежденного двойного связывания"?

У меня проблемы с довольно сложным кодом. Я не смог создать короткий фрагмент, который воспроизводит ошибку, поэтому я попытаюсь объяснить проблему словами.

Код аварийно падает с ошибкой

*** glibc detected *** gravtree: corrupted double-linked list: 0x000000001aa0fc50 ***

Отладка показала, что она исходит из строки, где коды освобождают объект. Кажется, что нет ничего плохого в объекте. Он существует, и я могу получить к нему данные во время возникновения ошибки. Деструктор объекта тривиален и ничего не делает.

Итак, я застрял. В каких обстоятельствах вы ожидаете, что "свободный" потерпит неудачу?

4b9b3361

Ответ 1

Попробуйте запустить вашу программу под Valgrind. Это может указывать на более раннюю причину, тогда как gdb только ломается, когда повреждение уже произошло.