|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Valentin Nechayev 2:5020/400 13 Mar 2003 22:53:32 To : Andrey Ivanov Subject : Re: howto analyse the .core file? -------------------------------------------------------------------------------- >>> Andrey Ivanov wrote: AI> Оно говорит: AI> Core was generated by `asquila'. AI> Program terminated with signal 11, Segmentation fault. AI> #0 0x2813f96b in ?? () AI> AI> Hичего не понял. Пытаюсь запустить прогу из отладчика: AI> gdb asquila AI> (gdb)r AI> Program received signal SIGSEGV, Segmentation fault. AI> 0x2813f96b in getenv () from /usr/lib/libc.so.4 AI> (gdb) backtrace AI> #0 0x2813f96b in getenv () from /usr/lib/libc.so.4 AI> #1 0x281251e8 in tzset () from /usr/lib/libc.so.4 AI> #2 0x28125411 in localtime () from /usr/lib/libc.so.4 AI> #3 0x804957a in is_time_in_limit (logtime=0xbfbff548 "1047548303.824") AI> at asquila.cpp:90 AI> #4 0x8048e76 in main (argc=909195569, argv=0x3030322c) at main.cpp:53 AI> #5 0x3030322c in ?? () AI> Error accessing memory address 0x34383731: Bad address. AI> AI> Можно ли на основании этой информации выяснить причину сбоя в работе AI> программы? Может, gdb для этого не предназначен? AI> Спасибо. Предназначен. И показывает кое-что: что у тебя в указателе не нормальный адрес, а последовательность символов "1784". Следовательно, где-то сделана запись текста в буфер недостаточного для этого размера. Судя по тому, что точно так же испорчен адрес возврата из main() (туда попало ",200"), буфер был в переменных функции main(). Да, а в argc у тебя "IUqp". Значит, первым делом пытаешься глазами найти переполнившийся буфер. Если не помогло - проходишь пошагово main() (командой "n"), на каждом сомнительном шаге проверяя (командой "bt") что не испорчен (остался как в начале) адрес возврата из main(). Как нашёл сомнительное место - лечи. P.S. Только не говори, что это ты нодлист парсил ;)) P.S.2. А вообще, отладка - отдельное ремесло и во многом - искусство. Hо лучше писать так, чтобы отладка не требовалась. P.S.3. Подозрительные чужие программы лучше собирать с libparanoia, она отлавливает наиболее кривые случаи работы со строками. -netch- --- ifmail v.2.15dev5 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/7368c70340f5.html, оценка из 5, голосов 10
|