Cómo depurar y perfilar cualquier archivo exe usando Visual Studio

¿Alguna vez ha tenido que depurar o perfilar un archivo ejecutable (archivo .exe) para el que no tiene código fuente o no puede compilarlo? ¡Entonces el tipo de proyecto de Visual Studio menos conocido, el proyecto EXE, es para usted!

En Visual Studio, puede abrir cualquier archivo EXE como un "proyecto". Simplemente vaya a Archivo -> Abrir -> Proyecto / Solución y vaya al archivo .exe . Como si fuera un archivo .sln . Visual Studio abrirá este archivo EXE como un proyecto. Esta característica ha existido por mucho tiempo. Funciona en todas las versiones actualmente compatibles de Visual Studio, y su documentación se encuentra en la página de depuración de la aplicación, que no forma parte de la solución de Visual Studio .



Depuración


Como en un proyecto normal, puede comenzar a depurar con F5, que iniciará el EXE y habilitará el depurador. Si desea depurar el inicio, puede comenzar a usar F11, que iniciará el EXE y se detendrá en la primera línea de código de usuario. Ambas opciones están disponibles en el menú contextual del proyecto EXE en la ventana del Explorador de soluciones , como se muestra a continuación:



Para la depuración, necesitará símbolos, archivos PDB, EXE y cualquier DLL que deba depurarse. Visual Studio seguirá el mismo proceso e intentará obtener los caracteres de la misma manera que al depurar un proyecto normal. Como es poco probable que los archivos PDB se distribuyan con el archivo .exe, es posible que desee encontrarlos en el ensamblado o, mejor aún, en el servidor de símbolos. Puede encontrar más información y recomendaciones sobre el uso de símbolos en este blog .

Para una depuración efectiva, también necesitará el código fuente que se utilizó para compilar el EXE, o incluso para varios archivos que le interesen. Necesita encontrar estos archivos y abrirlos en Visual Studio. Si el código fuente no coincide con el código fuente que se compiló, Visual Studio EXE le avisará cuando intente insertar un punto de interrupción y el punto de interrupción no estará vinculado. Este comportamiento se puede cambiar en la ventana de configuración . En la vista de parámetros, haga clic en el texto del enlace Debe coincidir con la fuente y luego seleccione la casilla de verificación para resolver la fuente inapropiada, como se muestra a continuación. Por supuesto, con una fuente inapropiada, nunca se sabe lo que sucederá, así que use esto bajo su propio riesgo.



Si el EXE se compiló con SourceLink , la información de la fuente se incluirá en el PDB y Visual Studio intentará cargar la fuente automáticamente. Esta es una muy buena razón para usar SourceLink con sus proyectos. Incluso si tiene un conjunto local, es posible que no tenga la versión utilizada para construir el binario. SourceLink es su forma confiable de garantizar que la fuente correcta esté vinculada al binario correcto.

Si no puede obtener el código fuente, aún tiene varias opciones:

  1. Use la herramienta para descompilar ensamblados de nuevo a C #, que puede volver a compilar en un ensamblaje nuevo para reparar el anterior.
    1. ILSpy es una gran opción para esto, pero hay muchas otras herramientas bien pagadas y gratuitas.

  2. Use la ventana de la herramienta Desmontaje en Visual Studio.
    1. El documento Fuente no encontrada contiene un enlace para ver el desmontaje . Tenga en cuenta que si está acostumbrado a depurar el código C #, ver el desmontaje es el último recurso.


Finalmente, si necesita pasar argumentos a un archivo EXE depurado, puede configurarlos junto con otros parámetros en la página Propiedades del proyecto ( haga clic con el botón derecho -> Propiedades en el nodo del proyecto en el Explorador de soluciones).



Perfilado


También puede usar herramientas de creación de perfiles con un archivo .exe ejecutándolas desde Depuración -> Perfiles de rendimiento . En la página de inicio de las herramientas de creación de perfiles, puede elegir qué herramientas usar contra el EXE. Puede encontrar más información sobre la creación de perfiles en estos documentos ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019 ).



Conclusión


Eso es todo Una breve descripción general de cómo puede usar Visual Studio para depurar y perfilar aplicaciones que no crea y que ni siquiera tienen código fuente. ¡La próxima vez que necesite depurar o perfilar un archivo .exe, asegúrese de abrirlo como una solución en Visual Studio!

Source: https://habr.com/ru/post/468333/


All Articles