Czy można zapobiec ładowaniu symboli dla bibliotek Qt 5 przez GDB, zachowując symbole debugowania dla mojej aplikacji?
Tak.
Jako komentarz Richarda Critten wspomina, ustawienie auto-solib-add
do 0
uniemożliwi ładowanie symbole dla wszystkich współdzielonych bibliotek, a następnie można dodać pliki ręcznie za pomocą polecenia z sharedlibrary
(który akceptuje regex). Jeśli to wyrażenie zostanie pominięte, wszystkie załadowane biblioteki zostaną załadowane.
To jednak zapobiegnie automatycznemu ładowaniu symboli wszystkich (nie tylko symboli debugowania), a także zapobiegnie automatycznemu ładowaniu symboli dla bibliotek systemowych, które często są wymagane do rozwinięcia stosu.
Lepszym rozwiązaniem może być zapisanie kopii bibliotek Qt5 z pełnymi danymi debugowania, np. ~/Qt5-debug/
, a następnie uruchom strip -g
w oryginalnych bibliotekach. W ten sposób otrzymasz symboliczne informacje dla wszystkich bibliotek, a w rzadkich przypadkach, kiedy rzeczywiście potrzebujesz pełnej informacji debugowania dla Qt5, możesz to zrobić, używając GDB file ~/Qt5-debug/libQt5Core.so.5.2
lub podobnych poleceń.
Rozdział GDB Files z podręcznika GDB ma więcej dokumentację pomocą takich osobnych symboli debugowania.
Może to strona: https://developer.mozilla.org/en-US/docs/Using_gdb_on_wimpy_computers może się przydać. –