Mon code de journalisation utilise la valeur de retour backtrace() pour déterminer la profondeur de la pile actuelle (à des fins d'impression jolies), mais je peux voir à partir du profilage que cet appel est très coûteux.Existe-t-il un moyen moins coûteux de trouver la profondeur de la pile d'appels que d'utiliser backtrace()?
Je ne pense pas qu'il existe une façon moins chère de faire cela? Notez que je ne me soucie pas des adresses d'images, mais du nombre d'entre elles. Ces fonctions de journalisation sont utilisées sur une grande base de code, donc le suivi manuel de la profondeur de la pile n'est pas vraiment une option.
Si l'idée d'ajouter un autre paramètre à votre fonction vous fait peur, vous pouvez également utiliser une variable statique. Ce n'est généralement pas une bonne idée, à mon avis. Cela fonctionnerait de la même manière que la solution de Douglas. – Brian