¿Cómo obtengo la traza inversa para todos los hilos en GDB?

151

¿Hay un comando equivalente en GDB al del "proceso 0 7" de WinDbg?

Quiero extraer todos los subprocesos en un archivo de volcado junto con sus trazas en GDB. "hilos de información" no genera los seguimientos de pila. Entonces, ¿hay un comando que lo haga?

srikantha ks
fuente
13
El comando correspondiente para LLDB esbt all , en caso de que alguien lo encuentre a través de Google (que piensa GDB == LLDB).
kennytm
Con python funciona lo siguiente "(gdb) python para thread en gdb.selected_inferior (). Thread (): thread.switch (); print (thread.num); gdb.execute ('where')"
Talespin_Kit

Respuestas:

244

En general, la traza inversa se usa para obtener la pila del subproceso actual, pero si es necesario obtener la traza de la pila de todos los subprocesos, use el siguiente comando.

thread apply all bt
Sharad
fuente
12
Para guardar la salida en un archivo:gdb <binary> <coredump> -ex "thread apply all bt" -ex "quit" > output.log
Doomsday
1
Puede acortar esto at a a bt
qbolec
59

¿Hay un comando que lo haga?

thread apply all where
Ruso empleado
fuente
44
Un sinónimo de backtrace.
Daniel Farrell