c++ - 线程 0x7fffc57fa700 (LWP 31671) exited] 在 gdb 中是什么意思?

标签 c++ linux multithreading gdb

我使用 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/

相关文章:

c++ - 使用 libcurl/其他库的 facebook 图形 API

c++ - 为什么QT进度条最大值被限制在99%?

linux - 加载多个不同版本的共享库

C:将另一个文本文件中的 URL 保存在 txt 文件中

c++ - 我的类主要是容器的前端,我应该公开这个事实吗?

Python套接字在使用pygame时只接收一次输入

c - 子进程会在 abort() 上发送 SIGCHLD 吗?

c# - 从 Asp.net 线程池获取线程?

c# - 确定 NamedDataSlot 是否存在的最佳方法是什么

c++ - 在 IDE 中检测硬盘驱动器