C 挂起进程调试

C 挂起进程调试,c,C,我有一个挂起的进程,在proc/sysrq触发器输出中,我看到调用堆栈出现在: test_code S 0000000101fcf430 0 15181 1 15182 15180 (NOTLB) ffff810080997d28 0000000000200086 0000000000000006 0000000000000009 ffff81012a8a0a28 ffff81012a8a07d0 ffff81010003b980 000079

我有一个挂起的进程,在proc/sysrq触发器输出中,我看到调用堆栈出现在:

test_code         S 0000000101fcf430     0 15181      1         15182 15180 (NOTLB)
ffff810080997d28 0000000000200086 0000000000000006 0000000000000009 
ffff81012a8a0a28 ffff81012a8a07d0 ffff81010003b980 000079a97155a4a6 
0000000000001474 000000022a8a0808 

Call Trace:
<ffffffff802f3618>{schedule_timeout+30}
<ffffffff8014c1ef>{get_futex_key+71} <ffffffff80149a88>{add_wait_queue+21}
<ffffffff8014c597>{futex_wait_abstime+565}
<ffffffff8010a1da{do_notify_resume+180}
ffffffff8012d7d5>{default_wake_function+0} <ffffffff8014c9c7>{do_futex+104}
<ffffffff801886a7>{pwrite+328} <ffffffff8015692e>{compat_sys_futex+186}
<ffffffff801234b0>{sysenter_do_call+27}
[pid  7867] accept(12,  <unfinished ...>
测试代码S 0000000 101FCF430 0 15181 1 15182 15180(NOTLB) ffff810080997d28 0000000000 2000086 0000000000000006 0000000000000009 ffff81012a8a0a28 ffff81012a8a07d0 ffff81010003b980 000079a97155a4a6 00000000000014740000000022A8A0808 呼叫跟踪: {schedule_timeout+30} {get_futex_key+71}{add_wait_queue+21} {futex_wait_abstime+565} {default_wake_function+0}{do_futex+104} {pwrite+328}{compat_sys_futex+186} {sysenter\u do\u call+27} Strace显示在以下位置卡住的流程:

test_code         S 0000000101fcf430     0 15181      1         15182 15180 (NOTLB)
ffff810080997d28 0000000000200086 0000000000000006 0000000000000009 
ffff81012a8a0a28 ffff81012a8a07d0 ffff81010003b980 000079a97155a4a6 
0000000000001474 000000022a8a0808 

Call Trace:
<ffffffff802f3618>{schedule_timeout+30}
<ffffffff8014c1ef>{get_futex_key+71} <ffffffff80149a88>{add_wait_queue+21}
<ffffffff8014c597>{futex_wait_abstime+565}
<ffffffff8010a1da{do_notify_resume+180}
ffffffff8012d7d5>{default_wake_function+0} <ffffffff8014c9c7>{do_futex+104}
<ffffffff801886a7>{pwrite+328} <ffffffff8015692e>{compat_sys_futex+186}
<ffffffff801234b0>{sysenter_do_call+27}
[pid  7867] accept(12,  <unfinished ...>
[pid 7867]接受(12,

调用堆栈中的函数有什么好的链接可以阅读并调试该问题吗?

如果该函数处于未挂起状态,则它正在等待传入连接。

这是完全正常的,accept()假定为“挂起”直到有人连接到端口。谢谢hans的回复。proc/sysrq触发器输出的输出显示等待get_futex_键,这是什么意思?