有没有一种方法可以在不附加 GDB 的情况下打印所有线程的堆栈跟踪?
或者是否有一个命令可以用作 gdb 批处理模式来打印所有线程的堆栈跟踪?
elfutils https://sourceware.org/elfutils/除其他实用程序外,还包括eu-stack
:
eu-stack
Print a stack for each thread in a process or core file.
它比 gdb 或 pstack 更快,后者只是 gdb 的 shell 脚本包装器。打印堆栈跟踪运行eu-stack
如下:
$ eu-stack -p 2209
PID 2209 - process
TID 2209:
#0 0x00007f53476b667b __poll
#1 0x00007f5348f98e99 g_main_context_iterate.isra.23
#2 0x00007f5348f99232 g_main_loop_run
#3 0x000055e604b1e56a main
#4 0x00007f53475cc00a __libc_start_main
#5 0x000055e604b1e76a _start
TID 2223:
#0 0x00007f53476b667b __poll
#1 0x00007f5348f98e99 g_main_context_iterate.isra.23
#2 0x00007f5348f98fac g_main_context_iteration
#3 0x00007f5348f98ff1 glib_worker_main
#4 0x00007f5348fc0486 g_thread_proxy
#5 0x00007f534813761b start_thread
#6 0x00007f53476c2c2f __clone
TID 2224:
#0 0x00007f53476b667b __poll
#1 0x00007f5348f98e99 g_main_context_iterate.isra.23
#2 0x00007f5348f99232 g_main_loop_run
#3 0x00007f5349581b56 gdbus_shared_thread_func
#4 0x00007f5348fc0486 g_thread_proxy
#5 0x00007f534813761b start_thread
#6 0x00007f53476c2c2f __clone
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)