如何在日志中查看进程中的线程事件



Gdb 在创建和销毁线程时显示线程事件

例如:创建线程时会显示如下所示的消息。

 [New Thread 0x41e02940 (LWP 25582)]

与线程被销毁时显示消息的方式相同。

不使用gdb时,我们有没有办法跟踪进程中发生的线程事件?

在不使用 gdb 的情况下,我们有没有办法跟踪进程中发生的线程事件?

GDB 不使用任何秘密 API,因此您可以编写一个(非平凡的)程序来跟踪线程创建和销毁事件,就像 GDB 一样,使用相同的 API。

但是您的问题可能是:"是否可以从进程本身内部跟踪/记录线程创建和销毁事件?

您可以插入pthread_createpthread_exit函数,并注入一个"包装器"函数,该函数将调用用户提供的实际线程函数。包装函数可以在调用时(新线程刚刚出现)和实际用户提供的线程函数返回后(线程即将退出)打印消息。把细节做好并不完全是微不足道的,但也不是很难。这是一个很好的起点。

最新更新