Próbuję obserwować działanie programów, uruchamiając je za pomocą debugera „Qt Creator”. Dla lepszej orientacji chciałbym zobaczyć również narzędzia systemowe (podstawowe) w oknie stosu wywołań, ponieważ jestem używany w MS Visual Studio 6.0, nie tylko do wyświetlania ich kodu asemblera. W przypadku narzędzi debugger „Qt Creator” wyświetla tylko to, że ich symbole debugowania są niedostępne. (Czasami system generuje raporty o błędach dla swoich programistów; okno dialogowe raportu o błędzie poprosiło o zainstalowanie takich symboli tylko dla określonego programu.) Jak mogę uzyskać podstawowe symbole debugowania? (Bez tłumaczenia całej wersji Ubuntu. Używam „Menedżera aktualizacji” do regularnego instalowania aktualizacji. Mój
/ sys / kernel / debug / x86katalog zawiera tylko jeden pusty plik. Nie znalazłem go w „Centrum oprogramowania Ubuntu” ani nie widzę, czy szukam niektórych pakietów na stronie http://packages.ubuntu.com/precise/x11/ .) Dzięki!
Odpowiedzi:
Pakiety w Ubuntu mają swoje symbole debugowania przechowywane w osobnym repozytorium. Aby pobrać te symbole debugowania, uruchom (skopiuj i wklej):
w celu dodania linków repozytorium
/etc/apt/sources.list.d/ddebs.list
(ułatwia to usunięcie repozytorium). Możesz też skopiować każdy zdeb
łączy do źródeł oprogramowania i dodać je stamtąd (pamiętaj, że prawdopodobnie będziesz musiał zastąpić$(lsb_release -cs)
je uruchomioną wersją Ubuntu).Aby pobrać debugowanie symbole
package
, można po prostu zainstalowaćpackage-dbgsym
lub, w niektórych przypadkachpackage-dbg
. Należy pamiętać, że pakiety z PPA nie mają symboli debugowania dostępnych w repozytoriach i że obowiązkiem opiekuna jest zapewnienie pakietu zawierającego symbole debugowania, zwykle w pakiecie o nazwiepackage-dbg
.Symbole debugowania są zainstalowane
/usr/lib/debug
, chociażgdb
automatycznie odczytuje symbole debugowania, jeśli są dostępne i nie trzeba ręcznie określać lokalizacji, w której należy zajrzeć. W zależności od wersji pakietu Debhelper Compatibility symbole debugowania mogą znajdować się w folderze z nazwa identyfikatora kompilacji znajdująca się wewnątrz.build-id
(>= 9
) lub może znajdować się względem miejsca, w którym zostanie zainstalowany plik wykonywalny (< 9
). Na przykład, jeśli szukałeś lokalizacji symboli debugowania dla/usr/bin/zip
, a wersja ma mniej niż 9, byłaby w/usr/lib/debug/usr/bin/zip
.Aby usunąć wszystkie symbole debugowania i repozytorium, uruchom,
sudo apt-get remove \.*-dbgsym
aby usunąć wszystkie-dbgsym
pakiety, isudo rm /etc/apt/sources.list.d/ddebs.list
aby usunąć repozytorium symboli debugowania.źródło
Dodanie do odpowiedzi saircot859. Musisz także zainstalować klucz GPG dla repozytoriów, jak opisano tutaj: https://wiki.ubuntu.com/Debug%20Symbol%20Packages
źródło
sudo apt install ubuntu-dbgsym-keyring
.Dodanie do odpowiedzi Evansa: W systemie Ubuntu 18.04 i nowszych korzystasz z polecenia
aby zainstalować klucze GPG. (Według https://wiki.ubuntu.com/Debug%20Symbol%20Packages )
źródło