GDB'deki tüm iş parçacıkları için geri izlemeyi nasıl elde edebilirim?


159

GDB'de WinDbg'nin "! İşlemi 0 7" komutuna eşdeğer bir komut var mı?

GDB'deki geri izleriyle birlikte bir döküm dosyasındaki tüm iş parçacıklarını çıkarmak istiyorum. "bilgi iş parçacıkları" yığın izlerini vermez. Öyleyse, işe yarayan bir komut var mı?


13
LLDB için ilgili komut olduğubt all - durumda birileri (GDB == LLDB düşünen) Google üzerinden buldum.
kennytm

Python ile şu çalışır "(gdb) python gdb.selected_inferior (). Thread (): thread.switch (); print (thread.num); gdb.execute ('where')"
Talespin_Kit

Yanıtlar:


255

Genel olarak geri izleme, geçerli iş parçacığının yığınını elde etmek için kullanılır, ancak tüm iş parçacıklarının yığın izlemesini elde etmek için bir gereklilik varsa, aşağıdaki komutu kullanın.

thread apply all bt

13
Çıktıyı bir dosyaya kaydetmek için:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Kıyamet

2
Bunu kısaltabilirsinizt a a bt
qbolec

2
@Doomsday yorumundaki komut benim için askıda kalıyor. gdb <binary> <coredump> -ex "thread apply all bt" -ex "detach" -ex "quit" > output.logGirdi bekleyen komutu engelleyen bir gdb sorusundan kaçınmak için daha iyi deneyin .
Mariano Paniga

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.