Estoy tratando de generar un gráfico de llamadas con el que averiguar todas las posibles rutas de ejecución que están golpeando una función particular (para que no tenga que descubrir todas las rutas manualmente, como hay muchos caminos que conducen a esta función). Por ejemplo:Generar gráfico de llamadas para el código de C++
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: ...
He tratado Codeviz y Doxygen, de alguna manera ambos resultados muestran nada más que de receptores de llamadas de función objetivo, D. En mi caso, D es una función miembro de una clase cuyo objeto será envuelto dentro de un inteligente puntero. Los clientes siempre obtendrán el objeto del puntero inteligente a través de una fábrica para invocar D.
¿Alguien sabe cómo lograr esto?
¿Ha hecho esto en un proyecto de archivo de varias? se ve muy bien como una herramienta – dirvine
¿Hay alguna manera de hacerlo para que no se llamen las funciones que no son locales al archivo/archivos como todas las funciones estándar que se llaman entre sí? – soandos
+1 Por alguna razón tuve que pasar la opción -n a C++ filt para que los nombres se deshaga. Pensé que lo mencionaría aquí en caso de que alguien más tenga el mismo problema. – Aky