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?

srikantha ks
źródło
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
Sharad
źródło
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
59

Czy jest takie polecenie?

thread apply all where
Zatrudniony Rosjanin
źródło
4
Synonim backtrace.
Daniel Farrell