En C sur Solaris 10, je voudrais obtenir la pile d'appels à partir d'un thread arbitraire dans un processus.Récupérer la pile d'appel de n'importe quel thread à l'intérieur de C
J'ai beaucoup de threads de travail et un thread qui les surveille tous pour détecter les boucles serrées et les blocages. La fonction que je voudrais implémenter consiste à ce que le thread de surveillance imprime la pile d'appels à partir du thread «bloqué» plusieurs fois avant de le tuer.
Je sais implémenter cela en faisant exécuter par le thread de surveillance pstack (avec system() ou en forking). Mais j'aimerais pouvoir implémenter cette fonction en C. Y at-il un moyen de le faire? Je sais comment faire un thread imprimer sa propre pile d'appels, en marchant la pile, ce qui est utile si elle frappe un assert, mais pas comment le faire pour un autre thread dans le même processus.
Merci pour toute aide. NickB
Mais comment cela permet-il à un thread d'obtenir la pile d'appels d'un autre thread? – NickB