Como gerar um gráfico de chamada para código C ++

Estou tentando gerar um gráfico de chamada para descobrir todos os caminhos de execução possíveis que estão atingindo uma função específica (para que eu não precise descobrir todos os caminhos manualmente, pois há muitos caminhos que levam a isso). função). Por exemplo

path 1: A -> B -> C -> D  
path 2: A -> B -> X -> Y -> D  
path 3: A -> G -> M -> N -> O -> P -> S -> D  
...  
path n: ...

Eu tentei Codeviz e Doxygen, de alguma forma, ambos os resultados mostram nada além de tabelas da função de destino, D. No meu caso, D é uma função de membro de uma classe cujo objeto será envolvido em um ponteiro inteligente. Os clientes sempre obterão o objeto ponteiro inteligente através de uma fábrica para chamar D.

Alguém sabe como alcançar isso

questionAnswers(7)

yourAnswerToTheQuestion