visual tutorial tag studio please open first espaƱol debug code closing close brackethighlighter advanced visual-studio mono raspberry-pi remote-debugging raspbian
https://github.com/techl/MonoRemoteDebugger/releases/download/v1.2.0/MonoRemoteDebugger.Server.zip

visual-studio - tutorial - visual studio code highlight closing tag



DepuraciĆ³n remota mono de Visual Studio (5)

Me gustaría depurar de forma remota una aplicación de consola C # que se ejecuta en Linux desde Visual Studio. Esto es lo que encontré hasta ahora:

http://www.mono-project.com/Debugger

El tiempo de ejecución de Mono implementa una interfaz de depuración que permite a los depuradores e IDE depurar el código administrado. Esto se denomina Soft Debugger y es compatible con MonoDevelop, Xamarin Studio y Visual Studio (cuando se instalan los complementos adecuados), así como con el cliente de línea de comandos SDB.

Mono proporciona una API para comunicarse con el depurador y crear sus propias UI de depuración a través del ensamblado Mono.Debugger.Soft.dll.

La página a continuación trata algunos problemas de la implementación actual del depurador MonoVS, pero todos están bien conmigo.

http://mono-project.com/Visual_Studio_Integration

La página también contiene enlaces a la guía de introducción para MonoVS:

http://mono-project.com/GettingStartedWithMonoVS

Que contiene un enlace de descarga para MonoTools:

http://mono-tools.com/download/

Sin embargo, el enlace de descarga ahora redirige a:

http://xamarin.com/download/

Donde me ofrecen descargar Xamarin Studio Starter Edition. Al hacer clic en el enlace de precios, veo que necesito al menos la edición Business para soporte de Visual Studio, a $ 999 por año. Bueno, no, gracias.

Aquí es donde estoy atrapado. Algunos detalles de mi entorno:

Entorno de desarrollo:

  • Windows 7 de 64 bits
  • Visual Studio Pro 2013 (podría usar 2010 si eso funciona mejor)

Entorno de destino:

  • Frambuesa pi
  • Raspbian Wheezy
  • Mono 3.2.8
  • Ejecutando la aplicación de consola sobre SSH

Encontré esta guía que explica cómo realizar la depuración remota en Linux, desde Windows, utilizando Xamarin Studio, que ahora es gratuito, excepto para el desarrollo de iOS y Android. Lo he ampliado con soluciones a los problemas que encontré al probarlo en una Raspberry Pi Zero W con Raspbian Jessie Lite (2017-04-10).

  1. Descargue e instale Xamarin Studio , GTK # para .NET y .NET Framework 4.6.2 . Xamarin Studio requiere .NET 4.5 pero GTK # requiere .NET 4.6. Utilicé Xamarin Studio versión 6.1.2 (compilación 44) y GTK # versión 2.12.44.
  2. Instalé Xamarin Studio en una máquina virtual diferente de mi máquina VS2015, así que necesitaba descargar e instalar MSBuild Tools 2013 y MSBuild Tools 2015 también.
  3. Cree una variable de entorno MONODEVELOP_SDB_TEST = 1 (Mi PC -> Propiedades -> Configuración avanzada del sistema -> Variables de entorno).
  4. Inicia Xamarin Studio. Si no se muestra ninguna ventana, verifique los archivos de registro en la carpeta %localappdata%/XamarinStudio-6.0/Logs para ver qué falló.
  5. Creé una aplicación de consola .NET 4.6 en Visual Studio 2015 y agregué el paquete NuGet Mono.Unofficial.pdb2mdb, usé la versión 4.2.3.4. El paquete Mono.pdb2mdb versión 0.1.0.20130128 no parece funcionar con ensamblajes creados por VS2015 ( PdbDebugException: Unknown custom metadata item kind: 6 ).
  6. Cargue el archivo .sln o .csproj de Visual Studio en Xamarin Studio. Cree la solución y use la herramienta pdb2mdb de la carpeta de paquetes de NuGet para crear un archivo .mdb: pdb2mdb MyProgram.exe
  7. Utilicé WinSCP para copiar MyProgram.exe y MyProgram.exe.mdb a mi Raspberry Pi.
  8. Inicié sesión con Putty usando SSH e instalé la versión 3.2.8 de Mono en Pi: sudo apt-get install mono-complete .
  9. Inicie el tiempo de ejecución de Mono con indicadores de depuración: mono --debug --debugger-agent=transport=dt_socket,address=0.0.0.0:12345,server=y /path/to/MyProgram.exe . Esto iniciará el programa pero detendrá la ejecución hasta que el depurador de Xamarin Studio se haya conectado.
  10. Establezca un punto de interrupción en Xamarin Studio y seleccione el elemento de menú Run -> Run with -> Custom Configuration... y seleccione Run Action = Debug - Custom Command Mono Soft Debugger . Haga clic en Debug .
  11. Complete los campos IP y Port con la dirección IP de su sistema Linux y el puerto 12345 como se especifica en la línea de comandos de Mono. Haga clic en Connect y comenzará la ejecución, deteniéndose en el punto de interrupción establecido.

Es posible establecer puntos de interrupción condicionales, entrar / salir de / sobre código, ver primitivas y objetos, etc., y también es bastante rápido. Prefiero depurar directamente desde Visual Studio, pero esto parece una solución totalmente funcional.



La solución que necesita viene este año con MonoDebugger.NET . El desarrollador (es) "promete" que podemos implementar en cualquier dispositivo Mono y depurarlo en Visual Studio (2010 a 2015).


Sé que es un hilo viejo, pero en caso de que alguien (como yo) no haya encontrado una solución para eso todavía, mientras buscaba, encontré esta extensión de Visual Studio 2015 que funciona como un encanto: MonoRemoteDebugger para Visual Studio 2015

Consulte MonoRemoteDebugger v1.0.4 para corregir un conflicto con la extensión Xamarin VS en la actualización 2 de VS2015.

Espero que ayude.

¡Ten una feliz depuración y gracias al desarrollador! :)


Sobre la base de la respuesta de Gutemberg Ribeiro , logré que MonoRemoteDebugger trabajara con VS2015 en una Raspberry Pi Zero W con Raspbian Jessie Lite (2017-04-10). El truco consistió en instalar una versión Mono posterior a la 3.2.8:

  1. Instale la extensión MonoRemoteDebugger Visual Studio, usé la versión 1.2.0.
  2. Cree una aplicación de consola .NET 4.6 en Visual Studio.
  3. Si se ha instalado una versión anterior de Mono en la Raspberry Pi, elimínela utilizando los comandos:

    sudo apt-get purge mono-completo

    sudo apt-get autoremove

  4. Instala la versión 4.0.2 de Mono:

    sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

    echo "deb http://plugwash.raspbian.org/mono4 jessie-mono4 main" | sudo tee -a /etc/apt/sources.list

    sudo apt-get update

    sudo apt-get install mono-completo

  5. Instalar el servidor MonoRemoteDebugger:

    wget https://github.com/techl/MonoRemoteDebugger/releases/download/v1.2.0/MonoRemoteDebugger.Server.zip

    unzip -d MonoRemoteDebugger.Server MonoRemoteDebugger.Server.zip

  6. Iniciar el servidor MonoRemoteDebugger:

    mono MonoRemoteDebugger.Server / MonoRemoteDebugger.Server.exe

  7. Establezca un punto de interrupción en Visual Studio y seleccione el elemento de menú MonoRemoteDebugger -> Debug with Mono (remote) en Visual Studio.
  8. Configure Remote-IP en la dirección IP de la Raspberry Pi y haga clic en Conectar. MonoRemoteDebugger compilará y transferirá el programa a la Raspberry Pi. No es necesario ejecutar pdb2mdb manualmente, el servidor MonoRemoreDebugger creará el archivo .mdb.

Para ser honesto, las capacidades de depuración son bastante limitadas. Los puntos de interrupción simples y el código de entrada / salida de / sobre parece funcionar un poco bien. Establecer un punto de interrupción en una función y luego pasar sobre esa llamada de función no se detendrá en el punto de interrupción.

Los tipos primitivos se pueden ver, pero los objetos que intenté ver no se pueden mostrar. La vista Pila de llamadas es bastante limitada y la vista Subprocesos está vacía. Las excepciones no se detectan, pero provocan un mensaje "[ERROR] FATAL UNHANDLED EXCEPTION" del MonoRemoteDebuggerServer. Pero si puede vivir con estas limitaciones, la configuración es más sencilla que la ruta de Xamarin Studio .