在 Linux 消息文件中,我注意到进程 14947 报告了段错误,但我没有得到进程 14947 的核心转储,而是得到了 14069.core。(它的生成时间与命中段错误的时间相匹配)。
然后我使用 gdb 并找到:-
Program terminated with signal 11, Segmentation fault.
[New process 14947]
[New process 26131]
[New process 26130]
[New process 26129]
[New process 26128]
[New process 14945]
[New process 14842]
[New process 14726]
[New process 14598]
[New process 14069]
当我运行“信息线程”时,我得到:-
(gdb) info thread
10 process 14069 0xffffe410 in __kernel_vsyscall ()
9 process 14598 0xffffe410 in __kernel_vsyscall ()
8 process 14726 0xffffe410 in __kernel_vsyscall ()
7 process 14842 0xffffe410 in __kernel_vsyscall ()
6 process 14945 0xffffe410 in __kernel_vsyscall ()
5 process 26128 0xffffe410 in __kernel_vsyscall ()
4 process 26129 0xffffe410 in __kernel_vsyscall ()
3 process 26130 0xffffe410 in __kernel_vsyscall ()
2 process 26131 0xffffe410 in __kernel_vsyscall ()
* 1 process 14947 0x006a8300 in pthread_mutex_lock ()
所以这是我的问题: -
- 为什么 coredump 文件名与消息文件中的 segfault 进程 id 不匹配?
- 我认为 coredump 是针对特定进程的,为什么这里有这么多像“[新进程 26130]”这样的信息?
- 为什么“信息线程”将显示进程信息,而不是线程?
谢谢!
另外:我的操作系统是 RHEL5。