Что означает это предупреждение? - PullRequest
10 голосов
/ 15 ноября 2010

Я часто встречал следующее предупреждение от gdb:

warning: .dynamic section for XXX is not at the expected address

, где XXX - это имя некоторой библиотеки.Совсем недавно я получил его для libgobject-2.0.so.Мое приложение использует GTK.GDB запускал его без проблем до вчерашнего дня, когда я синхронизировал последний код из репозитория и заново его скомпилировал.С тех пор он жаловался на раздел .dynamic.Каковы возможные причины этого?И как мне их разрешить?

1 Ответ

6 голосов
/ 15 ноября 2010

Некоторые версии GDB на самом деле более полезны с этим предупреждением. Они выводят что-то вроде следующего:

предупреждение: секция .dynamic для "libhello.so" не находится по ожидаемому адресу (неверное совпадение библиотеки или версии?)

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

Обновление звучит как хороший подозреваемый для причины. Предварительные ссылки на библиотеки также могут вызвать появление этого предупреждения, хотя я думаю, что GDB может справиться с этим случаем.

...