LINUX.ORG.RU

[gdb] не ставится бряк

 


0

1

У меня проект состоит из десятка cpp файлов, каждый собирается в свой обжект, потом в общий bin. Структура папок примерно следующая:

./mybin
./CMakeFiles/*.o
./../../src/*.cpp
Запускаю из ./
gdb mybin
делаю
symbol-file CMakeFiles/needed.o
list
показывает нужные сорцы делаю
info line TestFunc
показывает функцию. Делаю
b 17
// Cannot access memory at address 0x16
b needed.cpp:17
// Cannot access memory at address 0x16

не могу понять что делаю не так :(

PS. да я даже просто b по умолчанию не могу поставить, пишет «No default breakpoint address now»



Последнее исправление: Cupper (всего исправлений: 3)

Попробуй компилировать с ключами -O0 -fno-inline в дополнение к -g.

Кстати, а почему ты просто не используешь b TestFunc?

red_eyed_peguin
()

В объектном файле все имена начинаются с нуля, адреса не настроены на расположение в mybin. Зачем вообще symbol-file используется? Если strip на файл mybin не делался, то там все адреса корректны, symbol-file просто не нужен.

io ★★
()
Ответ на: комментарий от anonymous

кому как, я gdb не осилил, а через гуй вполне

xorik ★★★★★
()
Ответ на: комментарий от xorik

гуя нет

Кстати, а почему ты просто не используешь b TestFunc?

оно через дефайн сторонней либы указывается , я не знаю конечно сигнатуры, а на то имя что я указываю в дефайне неполучается брякнуться. Да и функция большая большая мне нужно определенное место в ней.

Зачем вообще symbol-file используется?

в начале не удавалось вообще сделать бряк мне всегда писалось что файл который я пытаюсь подсунуть совсем не знаком gdb. Сейчас еще раз попробую но сперва dir укажу.

Cupper
() автор топика
Ответ на: комментарий от Cupper

вот блин :( чеж я сразу dir не заюзал... поставился злополучный бряк

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