La depuración de las aplicaciones es un aspecto normal de nuestro día a día pero me sorprende muchas veces lo poco que usamos la depuración remota. No es algo nuevo, es algo que existe hace mucho pero que me da la sensación de que no se usa tanto como debería.
Cierto es que es más cómodo depurar la aplicación en local si tenemos todo en nuestra máquina pero tan cierto como que en muchas ocasiones no es posible reproducir o montar el mismo escenario dónde se da el error en nuestra máquina….o es posible montarlo, pero el coste no merece la pena.
Por este motivo, es importante conocer bien los pasos a realizar para poder depurar la aplicación de forma remota y usar este sistema cuando lo necesitemos.
Para poder depurar de forma remota tenemos que tener funcionando el monitor de depuración remota, msvsmon.exe
Lo podemos instalar en la máquina o simplemente lanzarlo accediendo a la máquina dónde está el visual studio a través de un recurso compartido.
En el equipo que está el Visual Studio la aplicación está en:
Microsoft Visual Studio 8Common7IDERemote Debuggerx86
Si lo queremos instalar en la máquina, en los CDs de Visual Studio hay una carpeta llamada «Remote debugger» que tiene el instalador.
Una vez instalado tienes que asegurarte de dos cosas….que tienes permisos de depuración remota sobre la máquina ( Permisos de depuración remota ) y que la comunicación entre ambas máquinas permite la depuración. ( Cómo configurar manualmente el Firewall de Windows XP para la depuración remota o Cómo configurar manualmente el Firewall de Windows Vista para la depuración remota )
Una vez que has arrancado el monitor de depuración y te has asegurado que tiene los permisos necesarios y que la comunicación está permitida, tendrás que conectarte desde el Visual Studio al proceso que deseas depurar. Cómo conectarse a procesos en ejecución
Hola, Ibon,
creo recordar que es necesario también que la compilación sea en modo «debug», no «release» y que estén en la misma carpeta de los ensamblados los ficheros .pdb.
Un saludo.
Hola J…
Pues dudaba si lo que comentas es realmente así.
En aplicaciones C++ no manejadas también se puede depurar versiones Release si en las opciones del proyecto se configura de tal manera que te permita incluir cierta información para depuración, eso sí, no es la misma que en Debug. En algunos casos esta opción resultaba útil….eso sí, a veces se podía volver un poco loco el depurarador. En mis tiempos de C++ y COM así lo hacía.
He probado con código manejado a ver si se puede y sólo lo he conseguido hacer funcionar teniendo el código en debug.
Un saludo,
Si antes hablo….
En Release tb se puede depurar en .NET. La información completa la podéis encontrar en:
http://vanryswyckjan.blogspot.com/2005/09/pdb-only-debug-information-option.html
En resumen…si pones el ejecutable a depurar ( o lo que sea ), el pdb y un fichero INI llamado como el ejecutable, con este formato que indico tb puedes depuerarlo.
[.NET Framework Debugging Control]
GenerateTrackingInfo=1
AllowOptimize=0
Un saludo!!
Hemos lanzado el guante a David Salgado ( Microsoft ) para darse una charlita en Artalde.NET…y entre otras cosas, es un genio en esto de la depuración..A ver si recoge el guante!!