LINUX.ORG.RU

GDB и многофайловый проект


0

0
Проблема: есть проект состоящий из нескольких файлов. Хотел посмотреть как он работает и обаружил, что дебагер останавливается только на бряках установленных в файле содержащем функцию main! Т.е. можно войти во внутрь функции, пройтись там по-шагам, посмотреть значения, но если поставить там бряку и выполнить run(or continue) остановки не происходит , программа отрабатывает, как-будто ни каких бряк и нет. PS. бряку ставил в конструкторе класса, объект которого создавался в функции main. Slackware 10.2

Ответ на: комментарий от RomanU
list filename:method break linemum

вобщем стандартно.

GrizLi
() автор топика
с помощью gdb ядро отлаживают, не думаю что проблема в нем,
пересобири проект обнови до последней версии gdb и будет счастье
fghj ★★★★★
()
У меня одно время тоже проблемы были с c++ кодом - бряки он ставил, но куда-то не туда (ставил через интерфейс ddd, просто тыкая мышью в нужную строку). То что не туда было видно - если пройти пошагово до той строки, где вроде как стоит бряк, адрес бряка и текущий адрес исполнения не совпадали. Так и не разобрался в чём дело было...

Можно попробовать ещё оптимизацию отключить (-O0). И попробовать бряки ставить не по номеру строки, а по имени функции (типа b 'Class::Method()'). При вводе имён работает автодополнение, так что можно понажимать таб и посмотреть какие ещё аналогичные методы есть (часто, например, создаются методы вида class::class$base()).

slav ★★★
()
Ответ на: комментарий от slav
Попробую. В ddd естественно тоже не работало.
GrizLi
() автор топика
Ответ на: комментарий от GrizLi
А как организован проект? Все модули в одном каталоге или есть подкаталоги? Если есть, то в какой каталог помещается исполняемый файл и из какого каталога запускаеся gdb?
ddo
()
Ответ на: комментарий от ddo
все лежит в одном каталоге (и исходники и объектники).Из негоже запускается и gdb.
GrizLi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.