Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.47.144] |
|
Сообщ.
#1
,
|
|
|
Для этого использую gdb
GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-marcel-freebsd"...(no debugging symbols found)... Core was generated by `my.bin'. Program terminated with signal 11, Segmentation fault. Reading symbols from /usr/local/lib/mysql/libmysqlclient.so.15...(no debugging symbols found)...done. Loaded symbols for /usr/local/lib/mysql/libmysqlclient.so.15 Reading symbols from /lib/libz.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libz.so.2 Reading symbols from /lib/libc.so.5...(no debugging symbols found)...done. Loaded symbols for /lib/libc.so.5 Reading symbols from /lib/libcrypt.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/libcrypt.so.2 Reading symbols from /lib/libm.so.3...(no debugging symbols found)...done. Loaded symbols for /lib/libm.so.3 Reading symbols from /libexec/ld-elf.so.1...(no debugging symbols found)...done. Loaded symbols for /libexec/ld-elf.so.1 #0 0x080558c1 in my_get_cookies () И не как не пойму как при его помощи найти ошибку, т.е. по его мнению что-то не так в libmysqlclient? А что именно? |
Сообщ.
#2
,
|
|
|
Дизассемблировать участок кода, где произошла ошибка. У него же хелп есть по всем командам. disassemble my_get_cookies, чтоб посмотреть дизасм-листинг ф-ии этой. Я, правда, тоже как-то забил на такую отладку из-за того, что слишком неудобно стало через консоль отлаживать - привык к ollydbg...
disassemble 0x080558c1 но на самом деле я думаю врядли тебе поможет gdb, т.к. если эта ф-ия из либы какой-то, как ты сказал, проще поискать ошибку в коде - мб где-то ноль передаешь, звездочку забыл, и т.п. |
Сообщ.
#3
,
|
|
|
Цитата Roman S @ по его мнению что-то не так в libmysqlclient? Ни откуда это не следует. Загрузка символов не означает ничего плохого. А ошибку надо искать по stack trace. |
Сообщ.
#4
,
|
|
|
А это разве не означает место, где она произошла (исключение)
#0 0x080558c1 in my_get_cookies () |
Сообщ.
#5
,
|
|
|
Roman S, ты бы показал кусок кода, где вываливается ошибка, может все намного проще.
|
Сообщ.
#6
,
|
|
|
cgi стоит на серваке, самое интересное что не где нет 500 ошибки и все работает нормально, только дамп иногда появляются и я не как не могу понят откуда.
А в другом cgi слово "0 0x080558c1 in my_get_cookies () " вообще нет. Добавлено my_get_cookies () с библией мускула ну не как не вяжется. |
Сообщ.
#7
,
|
|
|
Roman S,
чтобы использовать gdb, исходники программы(и библиотеки в том числе) необходимо собирать с соответствующими ключами. Код в студию ... |
Сообщ.
#8
,
|
|
|
Что именно нужно, боюсь всё в студию не вместется ))
|
Сообщ.
#9
,
|
|
|
Roman S, лучшая отладка - вести логи всех важных и критических действий.
|
Сообщ.
#10
,
|
|
|
Здесь проблема - могу увидеть когда это происходит. Покавырялся в логах по HTTP запросу (когда дамп выскакивает), симулирую ситуацию - чисто
|
Сообщ.
#11
,
|
|
|
Я имел в виду, что нужно вести логи всех критических действий при выполнении самого скрипта.
|
Сообщ.
#12
,
|
|
|
gruy - это не скрипт , это сишный бинарник у которого выскакивает дамп. И как искать то что не знаешь и главное где.
|
Сообщ.
#13
,
|
|
|
Цитата gruy - это не скрипт , это сишный бинарник у которого выскакивает дамп. И как искать то что не знаешь и главное где Скрипт это или бинарник, полученный из исходника сути дела не меняют. Боюсь спросить... Исходники то есть? Создается впечатление, что они отсутствуют. |