我目前正在调试一个使用pthreads的应用程序。当我附加GDB时它连续打印如下形式的消息:
<<p>[新线程strong> a_hex_number (LWP a_dec_number )]我假设a_hex_number是一个地址,但它是谁的地址?我假设a_dec_number是创建线程的唯一标识符,是吗?
我的假设正确吗?谁能给我更多关于数字及其含义的细节?我已经读了这份文件,但我仍然有困难得到完整的图片。也许一些关于Linux系统的信息会对我有很大帮助。
我假设a_hex_number是一个地址,但它是谁的地址?
这是一个线程描述符的地址(在Linux上也是pthread_self()
调用的结果)。
我假设a_dec_number是创建线程的唯一标识符,是吗?
不,它是内核分配给这个线程的线程id。这和在ps
输出中看到的是一样的(在Linux上,clone(2)
线程和进程在内核级别几乎没有区别)。