[General] Una consulta general

Hola, supongo que para la gente que se dedique a programar esta duda sea una chorrada: Dado un código fuente C++, deseo conocer el arbol de llamadas a una determinada función, para todas las apariciones de esa función en el código fuente y todos los ficheros que conforman ese codigo fuente, mostrando la salida desde la llamada a función hacia main. ¿Con que lo hago?

El Dilluns, 16 de juliol de 2012, a les 18:44:54, mvillarino va escriure:
Hola,
supongo que para la gente que se dedique a programar esta duda sea una chorrada:
Dado un código fuente C++, deseo conocer el arbol de llamadas a una determinada función, para todas las apariciones de esa función en el código fuente y todos los ficheros que conforman ese codigo fuente, mostrando la salida desde la llamada a función hacia main.
¿Con que lo hago?
No tengo claro si lo quieres como analisis estatico o en tiempo de ejecucion. En analisis estatico no es trivial y no sabria decirte si hay algo en software libre que lo haga (quiza algo de clang?), en tiempo de ejecucion puedes usar kBacktrace o simplemente poner un breakpoint en el gdb y mirar el bactrace desde ahi. Saludos, Albert
_______________________________________________ General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general

Lo quiero estático, sobre fuentes. El 16/07/12, Albert Astals Cid <aacid@kde.org> escribió:
El Dilluns, 16 de juliol de 2012, a les 18:44:54, mvillarino va escriure:
Hola,
supongo que para la gente que se dedique a programar esta duda sea una chorrada:
Dado un código fuente C++, deseo conocer el arbol de llamadas a una determinada función, para todas las apariciones de esa función en el código fuente y todos los ficheros que conforman ese codigo fuente, mostrando la salida desde la llamada a función hacia main.
¿Con que lo hago?
No tengo claro si lo quieres como analisis estatico o en tiempo de ejecucion. En analisis estatico no es trivial y no sabria decirte si hay algo en software libre que lo haga (quiza algo de clang?), en tiempo de ejecucion puedes usar
kBacktrace o simplemente poner un breakpoint en el gdb y mirar el bactrace desde ahi.
Saludos, Albert
_______________________________________________ General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general

2012/7/16 Albert Astals Cid <aacid@kde.org>:
El Dilluns, 16 de juliol de 2012, a les 18:44:54, mvillarino va escriure:
Hola,
supongo que para la gente que se dedique a programar esta duda sea una chorrada:
Dado un código fuente C++, deseo conocer el arbol de llamadas a una determinada función, para todas las apariciones de esa función en el código fuente y todos los ficheros que conforman ese codigo fuente, mostrando la salida desde la llamada a función hacia main.
¿Con que lo hago?
No tengo claro si lo quieres como analisis estatico o en tiempo de ejecucion. En analisis estatico no es trivial y no sabria decirte si hay algo en software libre que lo haga (quiza algo de clang?), en tiempo de ejecucion puedes usar kBacktrace o simplemente poner un breakpoint en el gdb y mirar el bactrace desde ahi.
Saludos, Albert
_______________________________________________ General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
En KDevelop tenemos un plugin para dibujar el gráfico de llamadas. Lo tendrás que compilar tu, se llama kdevcontrolflow [1]. Espero que te sirva! Aleix [1] https://projects.kde.org/projects/playground/devtools/plugins/kdev-control-f...

Le daré un vistazo (si logro compilar, que hace aaaaños que no lo hago). Creo que lo que quiero es algo así como un ctags o cscope pero para c++. Realmente el problema que tengo no es de programación, sino de l10n. Me explico: ando traduciendo un programa que casi no tiene contextos para traducción, no digamos ya marcadores semánticos, y en los que la redacción de los mensajes de ayuda de la gui (tooltips, whatisthises, esas cosas) están redactados de forma que se confunden con órdenes de menú u opciones configurables. En un momento dado he dicho que no, que no paso por poner infirnitivos por todos lados, y me he clonado el repositorio para navegar por el código fuente y echado a andar el opensrc.py del Lokalize) Entonces ahora me encuentro que, cuando miro el código fuente para obtener información contextual lo que estoy haciendo es mirar hacia los lados de la llamada a i18n/i18nc, concretamente a la función que está llamando a i18nc, y a la función donde se llama a la función que llama a i18n. Entenderás que me resultaría muy útil una herramienta que me saque un fichero con todas las llamadas a i18n, y sus dos primeros ancestros, en un formato cómodo para procesar con xquery / grep y cómodo de leer. Ocurre que mirar el código fuente afecta a la productividad. Tirando para delante puedo llegar a unas 60 / 100 mensajes por hora, según la terminología que tenga que mirar, pero con esto bajo a algo así como la mitad.... para mirar cosas que no debería (de hecho, idealmente no debería saber nada de lenguajes de programación). SLDS, Marce El 17/07/12, Aleix Pol <aleixpol@kde.org> escribió:
2012/7/16 Albert Astals Cid <aacid@kde.org>:
El Dilluns, 16 de juliol de 2012, a les 18:44:54, mvillarino va escriure:
Hola,
supongo que para la gente que se dedique a programar esta duda sea una chorrada:
Dado un código fuente C++, deseo conocer el arbol de llamadas a una determinada función, para todas las apariciones de esa función en el código fuente y todos los ficheros que conforman ese codigo fuente, mostrando la salida desde la llamada a función hacia main.
¿Con que lo hago?
No tengo claro si lo quieres como analisis estatico o en tiempo de ejecucion. En analisis estatico no es trivial y no sabria decirte si hay algo en software libre que lo haga (quiza algo de clang?), en tiempo de ejecucion puedes usar kBacktrace o simplemente poner un breakpoint en el gdb y mirar el bactrace desde ahi.
Saludos, Albert
_______________________________________________ General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
En KDevelop tenemos un plugin para dibujar el gráfico de llamadas. Lo tendrás que compilar tu, se llama kdevcontrolflow [1].
Espero que te sirva! Aleix
[1] https://projects.kde.org/projects/playground/devtools/plugins/kdev-control-f... _______________________________________________ General mailing list General@kde-espana.es http://kde-espana.es/mailman/listinfo/general
participants (3)
-
Albert Astals Cid
-
Aleix Pol
-
mvillarino