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

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

/sys/kernel/debug/x86
содержится только один пустой файл. Я не нашел его в «Центре программного обеспечения Ubuntu» и не вижу, есть ли некоторые пакеты на http://packages.ubuntu.com/precise/x11/ - это то, что я ищу.) Спасибо!
8
задан 5 February 2016 в 17:40

3 ответа

Пакетам в Ubuntu сохранили их отладочную информацию в отдельном repo. Для загрузки этой отладочной информации работайте (копия и вставка):

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

добавлять repo ссылки в /etc/apt/sources.list.d/ddebs.list (Это помогает удалить repo). С другой стороны, можно также скопировать каждый из deb ссылки в Источники программного обеспечения и добавляют их оттуда (Обратите внимание, что необходимо будет, вероятно, заменить $(lsb_release -cs) с релизом Ubuntu, который Вы выполняете).

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

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

Для удаления всей отладочной информации и repo работать sudo apt-get remove \.*-dbgsym удалить все -dbgsym пакеты, и sudo rm /etc/apt/sources.list.d/ddebs.list удалить отладочную информацию repo.

8
ответ дан 5 February 2016 в 17:40

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 428D7C01 C8CAB6595FDFF622
5
ответ дан 23 November 2019 в 05:29

Добавление к ответу Evans: На Ubuntu 18.04 и позже Вы используете команду

sudo apt install ubuntu-dbgsym-keyring

устанавливать ключи GPG. (Согласно https://wiki.ubuntu.com/Debug%20Symbol%20Packages)

2
ответ дан 23 November 2019 в 05:29

Другие вопросы по тегам:

Похожие вопросы: