Mik*_*ael 5 c++ linux multithreading gdb
我使用 C 和 C++ 在 Ubuntu 18.04 上开发和调试一些程序。在某些时候我的多线程程序崩溃了。在 gdb 中我还看到:
Thread 0x7fffc57fa700 (LWP 31671) exited]
Run Code Online (Sandbox Code Playgroud)
0x7fffc57fa700 和 LWP 31671 是什么意思?我想这就像线程ID之类的东西。我需要用 C 代码来获取它。但是当我尝试时std::this_thread::get_id()它返回 int 值,而不是 0x7fffc57fa700。
“ LWP 31671 ”是结束线程的“轻量级”进程 ID。它在Linux内核内部代表线程。这是Linux上出现的实现细节,忽略它即可。
“ 0x7fffc57fa700 ”是线程ID的十六进制表示,即get_id()对于C/C++线程或pthread_self()POSIX线程,返回的是线程类的成员函数。