我使用 C 和 C++ 在 Ubuntu 18.04 上开发和调试一些程序。 在某些时候,我的多线程程序崩溃了。在 gdb 中我还看到:
Thread 0x7fffc57fa700 (LWP 31671) exited]
0x7fffc57fa700 和 LWP 31671 是什么意思?我想这类似于线程 ID。我需要用 C 代码获取它。但是当我尝试 std::this_thread::get_id()
时,它返回了 int 值,而不是 0x7fffc57fa700。
最佳答案
“LWP 31671”是已结束线程的“轻量级”进程 ID。它在 Linux 内核中代表线程。这是Linux上出现的一个实现细节,忽略它。
"0x7fffc57fa700"是线程ID的十六进制表示,即对于C/C++线程返回的是线程类的成员函数get_id()
或者pthread_self()
用于 POSIX 线程。
关于c++ - 线程 0x7fffc57fa700 (LWP 31671) exited] 在 gdb 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56088460/