在linux上使用gdb调试核心转储时如何知道线程的状态?

Posted

技术标签:

【中文标题】在linux上使用gdb调试核心转储时如何知道线程的状态?【英文标题】:how to know state of the thread while debugging core dump with gdb on linux? 【发布时间】:2012-05-08 13:20:16 【问题描述】:

我在线程中遇到崩溃。在使用 gdb 调试 coredump 时,我想在崩溃前查看线程的状态。

在我的程序中,我正在为该线程发出信号并对其进行处理。了解线程崩溃之前的状态以及为该线程发出信号之前的时间会很有帮助。是否可以从 gdb 获取此信息?

谢谢

【问题讨论】:

这个帖子有足够的信息:***.com/questions/4077129/… 【参考方案1】:

使用 gdb 7.4 的“可逆调试”是可能的。看here 的小教程。

【讨论】:

【参考方案2】:

请参考本页

http://linux-hacks.blogspot.com/2009/07/looking-at-thread-state-inside-gdb.html

【讨论】:

这是真的.. 但是当实际程序不使用 coredump 运行时,此方法有效。

以上是关于在linux上使用gdb调试核心转储时如何知道线程的状态?的主要内容,如果未能解决你的问题,请参考以下文章

gdb 调试远程核心转储

在 Linux 上使用核心转储和 gdb 如何使用近似虚拟内存 (VSZ)?

GDB 和核心转储问题

核心转储注释部分

分析分段错误核心转储 (gdb)

有没有办法在gdb核心转储中获取线程的开始时间