LINUX.ORG.RU

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


0

0

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


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

А все ли модули компилируются с информацией об отладке (опция -g)?

ddo ()

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

а как ставил бряку то?
ЕМНИП, я делал так:

b test.cpp:102

остановиться в test.cpp в 102 строке.

RomanU ()

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

с помощью gdb ядро отлаживают, не думаю что проблема в нем,
пересобири проект обнови до последней версии gdb и будет счастье

fghj ★★★★★ ()

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

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

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

slav ★★ ()
Ответ на: Re: GDB и многофайловый проект от GrizLi

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

А как организован проект? Все модули в одном каталоге или есть подкаталоги? Если есть, то в какой каталог помещается исполняемый файл и из какого каталога запускаеся gdb?

ddo ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.