Страница 1 из 1
Отладка с помощью gdb
Добавлено: 2009-10-26 23:52:33
7z
Каллстак(bt) показывает только имена функций (без переменных) и по команде list не показывает исходник. Компилил с -g. В чем может быть проблема?
Re: Отладка с помощью gdb
Добавлено: 2009-10-26 23:54:42
paradox
соурсы должны лежать на месте
а не так что скомпилили с -g
а запускаем на другой машине и без соурсов
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:10:04
7z
запускаю на той-же машине что компилил/запускал gdb
сорсы никуда не перемещал + прописал всевоможные directory *(и на корень сорсов и на каждую из папок сорсов)
Как можно проверить правильность компилирования с -g?
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:16:56
paradox
а как вы gdb запускаете?
программа увас упала или что вы пытаетесь сделать?
если вы просто отлаживате
то я если чесно не помню как gdb показывал переменные с исходным текстом
такое делал токо ddd
а
#thread apply all bt full
что покажет?
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:22:25
7z
Программа упала (Program terminated with signal 11, Segmentation fault.)
Код: Выделить всё
(gdb) thread apply all bt full
Thread 10 (process 100341):
#0 0x28c7b037 in ?? ()
No symbol table info available.
#1 0x28c7ac71 in ?? ()
No symbol table info available.
#2 0x3b439b00 in ?? ()
No symbol table info available.
*** (все подобное)
#56 0xbfbfe7d8 in ?? ()
No symbol table info available.
#57 0x08445e0a in ACE_Message_Queue<ACE_NULL_SYNCH>::wait_not_empty_cond ()
No symbol table info available.
Previous frame inner to this frame (corrupt stack?)
#0 0x081da714 in ClassName::FunctionName ()
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:25:36
paradox
ну так у вас без дебага собрана программа
иначе бы ??() небыло
или это у вас скорее всего айс без дебага если ??() это упало в айсе
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:28:26
7z
айс без дебага, но упало-то не в нем. видите, там в конце было
Код: Выделить всё
Previous frame inner to this frame (corrupt stack?)
#0 0x081da714 in ClassName::FunctionName ()
Т.е. имя функции нормально прочиталось. Да и если вызывать bt, то имена функций читаются. Или обязательно надо все библиотеки в дебаге компилить?
Можно-ли как-то еще проверить действительно-ли я с -g компилил? (может что-то не так сделал)
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:47:51
paradox
упало оно похоже в айсе
а предыдущий вызов был
Previous frame inner to this frame (corrupt stack?)
#0 0x081da714 in ClassName::FunctionName ()
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:52:05
7z
Разве то, что шло под #0 - не последняя вызванная функция?
Можно-ли как-то еще проверить действительно-ли я с -g компилил? (может что-то не так сделал)
Параметры, с которыми была вызвана ClassName::FunctionName () очень нужны
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:55:46
paradox
ну даже незнаю
обычно те параметры для >
что я дал
показывают все треиды и все параметры функций
почему у вас не так как у всех
хз
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:58:31
7z
Ясно. Спасибо. Будут еще дельные мысли - пищите. А пока даже не знаю куда копать ;(
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 0:59:21
paradox
_http://wiki.debian.org/HowToGetABacktrace
полистайте
может чем то поможет
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 11:27:24
Fastman
Парадокс... вот ты как самый вменяемый реверсинженерщик, скажи...
Ну неужели к 2010 году в Unix/Linux не изобретут нормального дебагера...
Многие ругают MSVS, но в нем все логично и понятно.. и средств разработки и инструментов реверс инжиниринга под win много больше и они вменяемые...
В чем проблема ?
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 11:46:53
paradox
нет не изобретут
ответ почему юникс вей такой какой он есть, озвучили на лоре))) я вчера лису в аську его озвучивал
но например
IDA Pro есть под MacOS и Linux
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 11:56:23
paradox
юникс вей это как пьяный комбайнер который собирает урожай
результат - урожай конечно с поля собран
тоесть юниксы то работают - кто ж отрицает
но какой ценой...
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 11:59:52
Fastman
paradox писал(а):юникс вей это как пьяный комбайнер который собирает урожай
результат - урожай конечно с поля собран
тоесть юниксы то работают - кто ж отрицает
но какой ценой...
Так красочно и в точку, еще никто не выражался

))
Re: Отладка с помощью gdb
Добавлено: 2009-10-27 12:11:57
paradox
а потому что все кодеры
1) пользуються архитектурой которая была реализована just for fun
2) никто из кодеров не архитектор - дада есть такая специальность
архитектор это не совсем кодер(хотя кодить он умеет) а в двух словах тот который знает всю систему которую
развивают и знает какой цели она должна добиться
знает как работают оптимизаторы и что такое структурированое программирование
знает и следит за чистотой понимания между программными интерфейсами
итд
примеров just for fun много
линукс бсд итд
вот недавно появился новый проет just for fun под названием asterisk
многие считают что отличная PBX - и у меня вызывает это дикий смех
любой программист который создавал проект
знает что проект не может бесконечно быть глючным
и что любой отдельно взятый логический модуль системы может быть отлажен ну максимум за месяц
asterisk создавался марком спенсером как just for fun
он сам об этом рассказывал
он сам кодер линукса
но когда то у него появилось пару voip телефонов (железяк)
и он решил набросать пару строчек кода для того что бы их соеденить в сеть и управлять звонками
так и родился asterisk
и досих пор там не могут навести порядок
потому что нет логической концепции
вообщем долгая дискуссия