Как установить символы отладки для установленных пакетов?


8

Я пытаюсь посмотреть, как работают программы, запустив их отладчиком Qt Creator. Для лучшей ориентации я хотел бы также видеть системные (основные) утилиты полностью в окне стека вызовов, как я использую их в MS Visual Studio 6.0, а не только видеть их код сборки. Для утилит отладчик Qt Creator показывает только то, что их символы отладки недоступны. (Иногда система генерирует отчеты об ошибках для своих разработчиков; в диалоговом окне отчета об ошибках запрашивается установка таких символов только для конкретной программы.) Как я могу получить основные символы отладки? (Без перевода всей версии Ubuntu. Я использую «Менеджер обновлений» для регулярной установки обновлений. Мой

/ SYS / ядро ​​/ отладки / x86
Каталог содержит только один пустой файл. Я не нашел его в «Центре программного обеспечения Ubuntu», и при этом я не вижу, является ли какой-то пакет на http://packages.ubuntu.com/precise/x11/ тем, что я ищу.) Спасибо!


1
Смотрите эту страницу.
saiarcot895

@ saiarcot895 Это работает, пожалуйста, сформулируйте свой комментарий как ответ, чтобы я мог установить его как принятый. Где символы отладки размещены в моей файловой системе? Спасибо!
Томаш Печены

Ответы:


8

У пакетов в Ubuntu свои символы отладки хранятся в отдельном репозитории. Чтобы загрузить эти символы отладки, запустите (скопируйте и вставьте):

printf "deb http://ddebs.ubuntu.com %s main restricted universe multiverse\n" $(lsb_release -cs){,-updates,-security,-proposed} | \
 sudo tee -a /etc/apt/sources.list.d/ddebs.list

добавить ссылки на репо /etc/apt/sources.list.d/ddebs.list(это облегчает удаление репо). Кроме того, вы также можете скопировать каждую из debссылок в Software Sources и добавить их оттуда (обратите внимание, что вам, вероятно, придется заменить ее $(lsb_release -cs)на версию Ubuntu, которую вы используете).

Чтобы скачать отладочные символы для package, вы можете просто установить package-dbgsymили, в некоторых случаях package-dbg. Обратите внимание, что пакеты из PPA не имеют отладочных символов, доступных в репозиториях, и что сопровождающий обязан предоставить пакет, содержащий символы отладки, обычно в названном пакете package-dbg.

Символы отладки установлены /usr/lib/debug, хотя они gdbавтоматически считываются в символы отладки, если они доступны, и вам не нужно вручную указывать местоположение для поиска. В зависимости от версии пакета, совместимой с Debhelper, символы отладки могут находиться в папке с имя идентификатора сборки, расположенного внутри .build-id( >= 9), или может быть относительно места, где будет установлен исполняемый файл ( < 9). Например, если вы искали расположение символов отладки /usr/bin/zip, а версия меньше 9, она была бы в /usr/lib/debug/usr/bin/zip.

Чтобы удалить все символы отладки и репо, запустите, sudo apt-get remove \.*-dbgsymчтобы удалить все -dbgsymпакеты и sudo rm /etc/apt/sources.list.d/ddebs.listудалить репо отладочных символов.


5
Просто обратите внимание, что PPA теперь генерируют пакеты dbgsym. Но вам нужно добавить строку deb с помощью «main / debug», например: «deb ppa.launchpad.net/USER/PPA/ubuntu vivid main / debug»
Майкл Терри,

Что касается бионики, в репозитории ddebs нет файла Release для бионической безопасности
Пауло Марсель Коэльо Арагао,

5

Добавление к ответу saircot859. Вы также должны установить ключ GPG для репозиториев, как описано здесь: https://wiki.ubuntu.com/Debug%20Symbol%20Packages

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622

Связанная вики-страница была обновлена. На Ubuntu 18.04 LTS и новее используйте sudo apt install ubuntu-dbgsym-keyring.
user7610

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.