De vez en cuando, cuando investigo problemas de SQL Server, encuentro útil poder conectarle el depurador de Visual Studio e intentar descubrir qué está haciendo mirando la pila de llamadas (los símbolos públicos están disponibles y, a menudo, es posible inferir información útil). información de los nombres de los métodos).
Un gran ejemplo del tipo de información interna que se puede inferir esen esta publicación de blogque inspiró mis intentos.
Sin embargo, este puede ser un proceso tedioso y que requiere bastante tiempo. Generalmente ejecuto el código de interés en un bucle, adjunto el depurador, luego lo interrumpo continuamente y continúo hasta que llego a una pila de llamadas que parece interesante para el asunto que se está investigando. Luego puedo recorrer el código y ver los nombres de los métodos que se llaman. Sin embargo, esto lleva años.
¿Hay alguna forma de automatizar esto para poder simplemente registrar todos los métodos llamados durante un período corto y luego revisar el archivo de registro?
Respuesta1
Si no me equivoco, probablemente esté buscando Process Monitor (también conocido como procmon). Puedes obtenerlo deeste sitio web de Microsoft.
Específicamente, la opción de menú "Resumen de pila" tiene este tipo de información. Más detalles en la secciónPM2-6: Desenrollar la pila
Respuesta2
Elperfiladoren versiones superiores de Visual Studio se puede utilizar para hacer esto.
Salida de ejemplo
(Yla respuesta aquímuestra por qué esto es útil)
O adicionalmente elKit de herramientas de rendimiento de Windowses gratis y también puede hacer lo mismo y más. Puede encontrar una buena serie de vídeos sobre esto enhttps://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search