Отладка с помощью gdb

Модератор: Fastman

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-26 23:52:33

Каллстак(bt) показывает только имена функций (без переменных) и по команде list не показывает исходник. Компилил с -g. В чем может быть проблема?
This posting is provided "AS IS" with no warranties, and confers no rights.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-26 23:54:42

соурсы должны лежать на месте
а не так что скомпилили с -g
а запускаем на другой машине и без соурсов

7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Re: Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-27 0:10:04

запускаю на той-же машине что компилил/запускал gdb
сорсы никуда не перемещал + прописал всевоможные directory *(и на корень сорсов и на каждую из папок сорсов)
Как можно проверить правильность компилирования с -g?
This posting is provided "AS IS" with no warranties, and confers no rights.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 0:16:56

а как вы gdb запускаете?
программа увас упала или что вы пытаетесь сделать?

если вы просто отлаживате
то я если чесно не помню как gdb показывал переменные с исходным текстом
такое делал токо ddd

а
#thread apply all bt full

что покажет?

7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Re: Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-27 0:22:25

Программа упала (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 ()
This posting is provided "AS IS" with no warranties, and confers no rights.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 0:25:36

ну так у вас без дебага собрана программа
иначе бы ??() небыло

или это у вас скорее всего айс без дебага если ??() это упало в айсе

7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Re: Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-27 0:28:26

айс без дебага, но упало-то не в нем. видите, там в конце было

Код: Выделить всё

Previous frame inner to this frame (corrupt stack?)
#0  0x081da714 in ClassName::FunctionName ()
Т.е. имя функции нормально прочиталось. Да и если вызывать bt, то имена функций читаются. Или обязательно надо все библиотеки в дебаге компилить?
Можно-ли как-то еще проверить действительно-ли я с -g компилил? (может что-то не так сделал)
This posting is provided "AS IS" with no warranties, and confers no rights.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 0:47:51

упало оно похоже в айсе
а предыдущий вызов был
Previous frame inner to this frame (corrupt stack?)
#0 0x081da714 in ClassName::FunctionName ()

7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Re: Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-27 0:52:05

Разве то, что шло под #0 - не последняя вызванная функция?
Можно-ли как-то еще проверить действительно-ли я с -g компилил? (может что-то не так сделал)
Параметры, с которыми была вызвана ClassName::FunctionName () очень нужны
This posting is provided "AS IS" with no warranties, and confers no rights.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 0:55:46

ну даже незнаю
обычно те параметры для >
что я дал
показывают все треиды и все параметры функций

почему у вас не так как у всех
хз

7z
проходил мимо
Сообщения: 6
Зарегистрирован: 2009-10-26 23:10:48

Re: Отладка с помощью gdb

Непрочитанное сообщение 7z » 2009-10-27 0:58:31

Ясно. Спасибо. Будут еще дельные мысли - пищите. А пока даже не знаю куда копать ;(
This posting is provided "AS IS" with no warranties, and confers no rights.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 0:59:21

_http://wiki.debian.org/HowToGetABacktrace

полистайте
может чем то поможет

Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Re: Отладка с помощью gdb

Непрочитанное сообщение Fastman » 2009-10-27 11:27:24

Парадокс... вот ты как самый вменяемый реверсинженерщик, скажи...
Ну неужели к 2010 году в Unix/Linux не изобретут нормального дебагера...
Многие ругают MSVS, но в нем все логично и понятно.. и средств разработки и инструментов реверс инжиниринга под win много больше и они вменяемые...
В чем проблема ?
Главное в жизни здоровье и любовь, остальное я все куплю.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 11:46:53

нет не изобретут

ответ почему юникс вей такой какой он есть, озвучили на лоре))) я вчера лису в аську его озвучивал

но например
IDA Pro есть под MacOS и Linux

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 11:56:23

юникс вей это как пьяный комбайнер который собирает урожай

результат - урожай конечно с поля собран
тоесть юниксы то работают - кто ж отрицает

но какой ценой...

Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Re: Отладка с помощью gdb

Непрочитанное сообщение Fastman » 2009-10-27 11:59:52

paradox писал(а):юникс вей это как пьяный комбайнер который собирает урожай
результат - урожай конечно с поля собран
тоесть юниксы то работают - кто ж отрицает
но какой ценой...
Так красочно и в точку, еще никто не выражался :)))
Главное в жизни здоровье и любовь, остальное я все куплю.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Отладка с помощью gdb

Непрочитанное сообщение paradox » 2009-10-27 12:11:57

а потому что все кодеры
1) пользуються архитектурой которая была реализована just for fun
2) никто из кодеров не архитектор - дада есть такая специальность
архитектор это не совсем кодер(хотя кодить он умеет) а в двух словах тот который знает всю систему которую
развивают и знает какой цели она должна добиться
знает как работают оптимизаторы и что такое структурированое программирование
знает и следит за чистотой понимания между программными интерфейсами
итд

примеров just for fun много
линукс бсд итд
вот недавно появился новый проет just for fun под названием asterisk
многие считают что отличная PBX - и у меня вызывает это дикий смех
любой программист который создавал проект
знает что проект не может бесконечно быть глючным
и что любой отдельно взятый логический модуль системы может быть отлажен ну максимум за месяц

asterisk создавался марком спенсером как just for fun
он сам об этом рассказывал
он сам кодер линукса
но когда то у него появилось пару voip телефонов (железяк)
и он решил набросать пару строчек кода для того что бы их соеденить в сеть и управлять звонками
так и родился asterisk

и досих пор там не могут навести порядок
потому что нет логической концепции

вообщем долгая дискуссия