traçage des pthreads dans Linux?

Je n’ai trouvé aucun outil créé pour tracer les threads de pthread dans le processus Linux. Je veux quelque chose comme strace / ltrace, y a-t-il quelque chose à voir les appels en temps réel? Je vous remercie

strace fonctionne également pour les threads. Utilisez strace -f pour placer tous les threads.

Pour ne stracer qu’un thread particulier, vous devez d’abord trouver son tid (identifiant de thread). Les threads ont un identifiant de thread qui est vraiment un pid (identifiant de processus)

Une fois que vous connaissez le pid du thread, utilisez strace -p the_pid pour strace -p the_pid ce thread.

Les pids de tous les threads d’un processus peuvent être trouvés dans /proc//task/ , ou l’ID de thread en cours peut être appris avec l’ gettid() C.

En fait, strace n’est pas aussi bon que perf.

utiliser l’outil Perf, vous pouvez obtenir plus d’informations.

Par exemple, si certains de vos threads se bloquent et que vous voulez savoir quelles fonctions appellent, utilisez strace -p pid-id renvoie des informations limitées, mais perf top ou perf -t tid renvoie plus