如何解决有什么办法可以在gdb core dump中获取线程的开始时间
我正在尝试在Linux核心转储中找到最旧的线程。所以我需要获取正在运行的每个线程的开始时间。那么有什么方法可以获取线程的开始时间。
我尝试在gdb核心文件中执行一些命令,但是这给了每个调用线程堆栈,但没有启动时间。
致谢
拉比
解决方法
我正在尝试在Linux核心转储中找到最旧的线程。因此,我需要获取正在运行的每个线程的开始时间。
您的结论与您先前的说法不符。
那么有什么方法可以获取线程的开始时间。
否:该时间未记录在线程结构中的任何地方。
但是,通常 Linux会按递增顺序分配线程ID,因此按线程ID进行排序应该可以为您提供所需的顺序。例如:
(gdb) info thread
Id Target Id Frame
* 1 Thread 0x7fa91e769740 (LWP 2128629) __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
2 Thread 0x7fa91d766700 (LWP 2128632) 0x0000557aa5787165 in fn ()
3 Thread 0x7fa91af61700 (LWP 2128637) 0x0000557aa5787165 in fn ()
4 Thread 0x7fa91df67700 (LWP 2128631) 0x0000557aa5787165 in fn ()
5 Thread 0x7fa91cf65700 (LWP 2128633) 0x0000557aa5787165 in fn ()
6 Thread 0x7fa91bf63700 (LWP 2128635) 0x0000557aa5787165 in fn ()
7 Thread 0x7fa91c764700 (LWP 2128634) 0x0000557aa5787165 in fn ()
8 Thread 0x7fa91a760700 (LWP 2128638) 0x0000557aa5787165 in fn ()
9 Thread 0x7fa91b762700 (LWP 2128636) 0x0000557aa5787165 in fn ()
10 Thread 0x7fa919f5f700 (LWP 2128639) 0x0000557aa5787165 in fn ()
在这里您可以看到首先创建了线程1,然后创建了线程4、2、5、7等(这里的LWP
是Linux线程ID)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。