Jak uzyskać śledzenie wstecz dla wszystkich wątków w GDB?


151

Czy istnieje równoważne polecenie w GDB do polecenia „! Process 0 7” programu WinDbg?

Chcę wyodrębnić wszystkie wątki w pliku zrzutu wraz z ich śladami wstecznymi w GDB. „Wątki informacyjne” nie wyświetlają śladów stosu. Więc czy istnieje polecenie, które to robi?


13
Odpowiednie polecenie dla LLDB tobt all - na wypadek, gdyby ktoś znalazł to przez Google (kto myśli, że GDB == LLDB).
kennytm

Z pythonem działa "(gdb) python dla wątku w gdb.selected_inferior (). Thread (): thread.switch (); print (thread.num); gdb.execute ('where')"
Talespin_Kit

Odpowiedzi:


244

Ogólnie rzecz biorąc, ślad stosu jest używany do pobrania stosu bieżącego wątku, ale jeśli istnieje potrzeba pobrania śladu stosu wszystkich wątków, użyj następującego polecenia.

thread apply all bt

12
Aby zapisać wynik do pliku:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday

1
Możesz to skrócić dot a a bt
qbolec

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.