Добрый день. В общем проблема такая: #0 0x002147a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x002547f5 in raise () from /lib/tls/libc.so.6 #2 0x00256199 in abort () from /lib/tls/libc.so.6 #3 0x002884ea in __libc_message () from /lib/tls/libc.so.6 #4 0x002937fb in free_check () from /lib/tls/libc.so.6 #5 0x0028ef95 in free () from /lib/tls/libc.so.6 #6 0x002dd828 in freeaddrinfo () from /lib/tls/libc.so.6 Программу запускал с MALLOC_CHECK_=3 Есть core dump. Никак не могу понять в чем проблема. Проявляется крайне редко. В общем суть кода (данной функции) такова: две структурки res и res_l: if ((err = getaddrinfo(host, port, &hints, &res))) { if (err == EAI_NONAME) return -1; err_fin_gai(err, "getaddrinfo()"); } if ((err = getaddrinfo(local, NULL, &hints, &res_l))) { freeaddrinfo(res); if (err == EAI_NONAME) return -1; err_fin_gai(err, "getaddrinfo()"); } потом с одной делаем bind() и freeaddrinfo(res_l), со второй connect() и freeaddrinfo(res). Вот на последней фриаддринфо и вываливается (но очень редко! с чем это связано как раз и не могу понять). Программа многопоточная. В общем вопрос больше такой - проблемы с памятью где то в этой функции либо могут начаться раньше ? В принципе с опцией MALLOC_CHECK_=3 по-моему при первом же free() должны обнаружиться косяки с памятью ? Но freeaddrinfo(res_l) же проходит нормально, а между ним и freeaddrinfo(res) только коннект. В общем подскажите, куда копать...
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Проблемы с glibc (2008)
- Форум std::fstream падает при записи в файл ~2.2 Gb (2004)
- Форум Squid падает в корки. (2007)
- Форум как увидеть src код с ошибкой при отладке? (2002)
- Форум Не могу победить TIME_WAIT, как закрывать сокеты? (2010)