Здравствуйте, zaufi, Вы писали:
Z>Здравствуйте, keeper-andrew, Вы писали:
KA>>Очевидно что валится в методе initialise_event_info_struct из-за какого-то кривого указателя. Но какая при этом выполняется сишная операция мне понятно. gdb показал код ассемблерный:
Z><skip>
KA>>Жирным я выделил адрес который соответствует initialise_event_info_struct+0x1ca если я ничего не перепутал.
Z>это всего лишь адрес возврата, полученный раскруткой stack frameов, куда мы вернемся после вызова __fdelt_chk.
Спасибо. Теперь мне стало понятно откуда в бактрейсе еще 3 позиции из libc.
KA>>У меня есть исходник, у меня есть эта библиотечка и я собрал ее с максимальной отладочной инфой. Но gdb не показывает сишный код.
Z>чтобы он показывал код, ему нужно сказать где он (читать здесь)
KA>> Может быть есть способ отладки чтобы сопоставить код и этот адрес?
Z>`man addr2line`
Z>если отладочная инфа включена, должен хотябы показать номер строки
Огромное спасибо. Номер строки показал. Но там мега макрос так что теперь вопросов появилось больше чем ответов.
FD_SET( eis->fd, &eis->rfds );
из select.h
Z>а вообще, тебе же glibc явно написал: buffer overflow detected (все собрано с fortify).
Специально я этот fortify не подключал. Даже понятия не имею о том что это такое.
Z>поэтому я бы рекомендовал более надлежащий для этого tool: http://valgrind.org/docs/manual/mc-manual.html
Z>он тебе покажет кто и что делает с памятью не так... вполне вероятно что не придется ждать 2 часа пока все упадет -- если есть кривая работа с памятью, valgrind тебя завалит спамом...
Охблин. А казалось все будет проще....