gpt4 book ai didi

c++ - 在我的 C++ 程序中,所有线程都停留在 "select () from/lib64/libc.so.6",内存使用率很高

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:38:20 25 4
gpt4 key购买 nike

enter code here我有一个要从 32 位迁移到 64 位的二进制文件。

我运行了它,这是我运行时的结果 top -H -p <name of binary> :

enter image description here

请注意,所有条目都是同一进程的线程。

所以我决定我必须检查每个线程内部发生了什么。因此,我开始附加到每个进程。

这是结果:

gdb attach 28608
(gdb) bt
#0 0x00000039a40ccfc2 in select () from /lib64/libc.so.6
#1 0x00002b40b4d20178 in ?? ()
#2 0x0000000000000000 in ?? ()


gdb attach 28472
(gdb) bt
#0 0x00000039a40ccfc2 in select () from /lib64/libc.so.6
#1 0x00002b40b4d20178 in ?? ()
#2 0x0000002d00000000 in ?? ()
#3 0x000000300000002e in ?? ()
#4 0x0000003200000000 in ?? ()
#5 0x00000000142cf418 in ?? ()
#6 0x00000000142cf3f8 in ?? ()
#7 0x0000003900000038 in ?? ()
#8 0x0000003e0000003b in ?? ()
#9 0x0000004000000000 in ?? ()
#10 0x00000000142cf278 in ?? ()
#11 0x00000000142cf2f8 in ?? ()
#12 0x0000004800000047 in ?? ()
#13 0x00007fffe259cd00 in ?? ()
#14 0x00007fffe259cd70 in ?? ()
#15 0x0000000000000000 in ?? ()

gdb attach 28475
(gdb) bt
#0 0x00000039a40ccfc2 in select () from /lib64/libc.so.6
#1 0x00002b40b4ee8f3c in ?? ()
#2 0x0000000000000002 in ?? ()
#3 0x0000000000069f50 in ?? ()
#4 0x00002b40b542e160 in ?? ()
#5 0x00002b40b4ee9e91 in ?? ()
#6 0x00002b40b5505681 in ?? ()
#7 0x00000000140fede0 in ?? ()
#8 0x0000000000000000 in ?? ()

gdb attach 28609
(gdb) bt
#0 0x00000039a40ccfc2 in select () from /lib64/libc.so.6
#1 0x00002b40b4d20178 in ?? ()
#2 0x0000000000000000 in ?? ()

我不太确定这个 select() 函数是什么。

你能告诉我这里可能出了什么问题吗?为什么所有的线程都像那样卡住?你以前遇到过这样的事情吗?

最佳答案

select是一个 API 调用,允许您监视文件描述符的事件,此时您将收到通知并可以执行事件(例如读取或写入)。

看起来您的程序有 4 个线程,每个线程都在等待 select 返回。

关于c++ - 在我的 C++ 程序中,所有线程都停留在 "select () from/lib64/libc.so.6",内存使用率很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21697970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com