pointeur de stack de thread

Dans Linux 2.6.32-32, existe-t-il un moyen de rechercher les informations suivantes sur un thread par programme dans un programme pthreads ? J’ai besoin de: nombre d’exécutions, pointeur de stack, début / fin de stack, taille de la stack, utilisation de la stack. Quelque chose comme ThreadX, je suppose, mais dans un programme. Merci.

  • pthread_getattr_np () devrait vous donner les atsortingbuts pthread d’un thread
  • pthread_attr_getstack () renvoie l’adresse et la taille de la stack
  • Je ne sais pas ce que vous entendez par nombre de courses.
  • Pour le pointeur de stack d’un thread différent de votre fil actuel, vous devrez peut-être utiliser ptrace . Une fois que vous l’avez, vous pouvez l’utiliser pour faire le calcul afin de déterminer quelle quantité de la stack est utilisée.

Pour obtenir votre propre pointeur de stack, vous pouvez toujours faire quelque chose dans le sens suivant:

 mword sp; asm volatile ("mov %esp, $0" : "=r"(sp)); 

En complément de la réponse de BjoernD, vous pouvez obtenir le nombre de commutateurs de contexte et la durée totale d’exécution à l’aide de l’appel RUSAGE_THREAD avec RUSAGE_THREAD . Vous ne pouvez pas obtenir d’informations sur le nombre brut de tranches de temps exécutées; cette information n’est pas suivie en premier lieu.