visual unity studio mac instalar for descargar debugging mono add-in monodevelop

debugging - studio - monodevelop unity download for windows



¿Cómo puedo depurar los complementos de MonoDevelop con MonoDevelop? (2)

el depurador suave aún no es compatible con System.Diagnostics.Debugger.Break (), por lo que no funcionará.

Solo necesita depurar MonoDevelop dentro de MonoDevelop y establecer sus puntos de interrupción en los archivos fuente de su complemento.

El tema lo dice todo. No puedo encontrar ninguna información en el sitio de monodesarrollo ni a través de google.

Incluso al agregar System.Diagnostics.Debugger.Break() y ejecutar con mono --debug MonoDevelop.exe no parece hacer nada ...


mono --debug no tiene nada que ver con el depurador, simplemente hace que Mono rastree la información de depuración para que pueda darle información de archivo / línea / columna en trazas inversas.

El comportamiento de System.Diagnostics.Debugger.Break() depende de su versión Mono. AFAIK en su forma básica establece un punto de quiebre duro, por lo que si su aplicación no se ejecuta en un depurador duro nativo simplemente se bloqueará. Si su aplicación se ejecuta dentro de Mono Soft Debugger con Mono 2.11 o posterior (que aún no se ha lanzado), establecerá un punto de interrupción suave para el depurador de software y funcionará como se espera.

La forma básica de habilitar la depuración de complementos es establecer un comando de ejecución personalizado en su proyecto de complemento. Abra ''Opciones de proyecto'', vaya a la sección ''Ejecutar> Comandos personalizados'', agregue un comando personalizado para ''Ejecutar''. Establezca el ejecutable en MonoDevelop.exe y el directorio de trabajo para que sea su directorio contenedor. Esto significa que cuando ejecuta / depura su proyecto, MD realmente ejecutará ese ejecutable en lugar de ejecutar su proyecto directamente. Si MonoDevelop.exe carga su complemento, podrá establecer puntos de interrupción, paso, etc.

La parte difícil aquí es hacer que MD cargue tu complemento. Una forma de hacerlo sería hacer que su proyecto genere el addin dll en uno de los directorios en los que MD busca complementos, pero eso es algo muy raro de hacer en el momento del desarrollo. Una mejor solución es usar la variable de entorno no documentada MONODEVELOP_DEV_ADDINS para especificar un directorio adicional desde el cual el MD cargue complementos. No hay una IU en MD para establecer los parámetros para los comandos personalizados, pero se admite internamente. Deberá editar manualmente el archivo csproj.

Encuentre la pieza que se ve así:

<CustomCommands> <CustomCommands> <Command type="Execute" command="../../../monodevelop/main/build/bin/MonoDevelop.exe" workingdir="../../../monodevelop/main/build/bin" /> </CustomCommands> </CustomCommands>

Y cámbialo a:

<CustomCommands> <CustomCommands> <Command type="Execute" command="../../../monodevelop/main/build/bin/MonoDevelop.exe" workingdir="../../../monodevelop/main/build/bin"> <EnvironmentVariables> <Variable name="MONODEVELOP_DEV_ADDINS" value="${TargetDir}" /> </EnvironmentVariables> </Command> </CustomCommands> </CustomCommands>

Si se pregunta por qué los elementos <CustomCommands> tienen dos profundidades, es un error conocido.