2014-12-10 4 views
0

У меня возникла ситуация, когда я удаленно отлаживаю приложение, использующее статическую библиотеку. Как статическая библиотека, так и приложение построены с флагом -g, и есть отладочные записи, показанные на objdump -t lib.a | grep debug.Debug gdb setup

Однако отладчик только останавливает точки останова в функциях основного приложения, но игнорирует их в статической lib. Я делаю заявление печати в lib, которое выполняется, но точка останова на том же месте игнорируется. Также доступен источник lib. Я использую создатель Qt для интерфейса отладки.

Вопрос в том, есть ли способ отладить эту настройку? Может ли gdb печатать некоторые сообщения журнала во время выполнения, которые могут указывать на ошибку?

+0

Когда вы говорите: «Отладчик только замечает точки останова в главном приложении, но игнорирует те, что есть в статической lib», означает ли это, что вы можете установить точки останова в отладчике без сообщений об ошибках, но программа не делает, t останавливаться на этих контрольных точках? Или он останавливается на контрольных точках, но отладчик не идентифицирует причину остановки в качестве точки останова? –

+0

@MarkPlotnick Я обновил вопрос. Отладчик не останавливается, хотя есть точка останова, и код в этом месте, безусловно, выполняется. – TheMeaningfulEngineer

ответ

1

Что сказать, когда вы устанавливаете точку останова? тип:

info b 

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

+0

Отслеживает проблему с 'Нет исходного файла с именем/home/user/path_to_source' – TheMeaningfulEngineer