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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.