Encuentra todos los usos de una variable en el código

Soy consciente de que algunos IDE, como MS Studio, tienen una opción para encontrar todos los usos de una variable en el código .

Sin embargo, por lo que puedo ver, ese hallazgo se detiene cuando pasa una variable como parámetro a una función. Es decir, no rastrea el uso posterior de esa variable dentro de la función o funciones llamadas a las que, a su vez, pasa la variable.

¿Hay alguna herramienta (navegador de código, IDE, llámelo como quiera) que me permita hacer esto para c/c++, preferiblemente gratis?

No me importa cambiar de sistema operativo en aquellas ocasiones en las que quiero usar esto. Busqué en Google, pero no encontré nada (tal vez no busqué lo suficientemente profundo), por lo que no impondré ninguna restricción en o/s o presupuesto.

Respuestas (1)

Esto no es encontrar todos los "usos" de una variable.

Está rastreando todos los usos de un valor calculado . (Podría llamar a la función con el argumento x+y y considerar rastrearlo también). En general, esto se denomina "fragmentación del programa".

Creo que Code Surfer hará lo que quieras. Los autores, GrammaTech, construyen herramientas de análisis de programas de clase mundial.

Resumen:

  • Navegador de código
  • Rastrea usos de variables y expresiones dentro y a través de los límites de la función
  • No gratuito
Hmm, lo llevaste un punto más allá de lo que había considerado. Si bien es cierto que no consideré pasar x+y como un parámetro cuando estoy interesado en x, encuentro que no quiero eso. Sin embargo, bien puede haber otras trampas. Realmente solo me interesaba seguir un solo dato (variable). Había estado pensando en objetos de una clase, pero podría haber, como dices, más que eso.
Ja, ja, pero teniendo en cuenta que "CodeSurfer/x86 no está actualmente disponible para la venta al público. El paquete programable de CodeSurfer incluye la GUI, el inspector de rutas y el lenguaje de secuencias de comandos/API. El precio en EE. UU. para una licencia flotante es de $6990, incluida la primera año de mantenimiento Se requiere un número mínimo de licencias" - tendrás que hacerlo mejor que "Creo que Code Surfer hará lo que quieras" ;-) Podría escribirles y preguntarles, pero cuando dije estúpidamente "sin límite de presupuesto ", No me esperaba eso y dudo que mi empleador lo acepte.
Pediste, recibiste. CodeSurfer tiene una muy buena reputación. Estas herramientas son difíciles de construir y la cantidad de personas que están dispuestas a comprarlas es pequeña, por lo que no me sorprende el precio. No entiendo la parte sobre "No disponible para el público"... Parece que acabas de describir cómo obtenerlo, incluso si ese es un precio que no quieres pagar.
"Tendrás que hacerlo mejor que 'creo'" ... OK, lo haré mejor. Estoy muy seguro de que lo hacen bien. Admito que no he usado el producto. Pero hago un seguimiento de la tecnología para hacer este tipo de cosas, y Grammatech es uno de los líderes claros aquí.
Suena genial. Pero hace lo que pido? ¿Responde a esta pregunta específica?
Si apunta a una asignación específica de variable (puede haber más de una; puede ser un efecto secundario de una actualización de puntero, puede vincularse a un elemento de la lista de argumentos), una segmentación directa encontrará todos los usos de esa variable en particular. asignación, y le permite seguir el impacto descendente en la medida que desee en cualquier dirección, incluso a través de argumentos de función, a través del acceso de puntero indirecto a la variable, etc. introducido en esta esta asignación"). Le sugiero que le pregunte a Grammatech por más detalles.
Ok, gracias, eso empieza a sonar mejor. Ojalá hubiera algo más barato :-(