Uruchamiam gdb i chcę zbadać jeden z tych niefortunnych obiektów bogów. Potrzeba wielu stron (a mam monitor 24 "obrócony na bok!), Aby zobaczyć całość. Dla ułatwienia chciałbym, aby gdb wydrukowało obiekt do pliku zamiast na ekranie, abym mógł go otworzyć w vi i poruszaj się z łatwością. Przy całej wszechstronności gdb musi istnieć sposób, aby to zrobić, prawda?
104
set logging redirect on
.set logging file my_god_object.log
wcześniejset logging on
?tail -f
iawk
był dzisiaj bardzo pomocny. Dzięki!Odkryłem, że możesz przekierować dane wyjściowe z gdb do pliku za pomocą
run
polecenia:źródło
Rozszerzanie odpowiedzi @ qubodup
-ex
przełącznik uruchamia komendę gdb. Więc powyższe ładuje plik core, uruchamiabt
polecenie, a następniequit
polecenie. Dane wyjściowe są zapisywanebacktrace.log
na ekranie, a także na ekranie.Innym użytecznym wywołaniem gdb (dającym śledzenie stosu ze zmiennymi lokalnymi ze wszystkich wątków) jest
źródło
gdb -c core.3599 ...
Z https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html :
źródło
Prostą metodą logowania gdb do pliku przy jednoczesnym wyświetlaniu danych wyjściowych (co ułatwia pisanie poleceń) jest użycie
tee
:źródło
Chociaż jest tu wiele dobrych odpowiedzi, nadal muszę opublikować jedyną rzecz, która zadziałała:
To był jedyny sposób na pobranie gdb i binarnych danych wyjściowych do tego samego pliku log.txt, jednocześnie wyświetlając go na konsoli.
EDYTOWAĆ:
Przestroga: Wydaje się, że dane wyjściowe nie są częściowo zsynchronizowane między wyjściem gdb a wyjściem binarnym. Czy ktoś może potwierdzić? Możesz chcieć sprawdzić, czy twój klient telnet / ssh ma funkcję rejestrowania danych wyjściowych, które widzisz w konsoli.
źródło
Masz tutaj wiele odpowiedzi. Mają rację. Chcę tylko dodać polecenie, które pomoże ci zebrać wszystkie dane wyjściowe naraz. Jest to bardzo pomocne, gdy zbierasz ogromny ślad. Przed wykonaniem jakiejkolwiek konfiguracji rejestrowania wykonaj następujące czynności:
Znalazłem to w tym artykule: https://askaralikhan.blogspot.com/2016/05/gdb-all-threads-bt-to-file.html?showComment=1584614942454#c4584028195226351332
źródło