Добрый день. В общем проблема такая:
#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)
- Форум Trouble ! ! ! (2014)
- Форум Troubles (2002)
- Форум trouble (2005)
- Форум memory (2007)
- Форум memory (2003)