Debug.Assert parece no funcionar en Mono

Considere el siguiente progtwig de C #:

using System; using System.Diagnostics; namespace Test { class MainClass { public static void Main (string[] args) { Debug.Assert(false); Debug.Fail("fail!"); Console.WriteLine ("Hello World!"); } } } 

Al comstackr esto usando:

 dmcs -debug -d:DEBUG Main.cs 

y luego ejecutándolo con:

 mono --debug Main.exe 

La aserción y el fracaso parecen ser ignorados. La salida es solo:

 Hello World! 

Revisé otras preguntas relacionadas en StackOverflow, pero no pude encontrar una solución. En particular, la solución dada en Mono – Debug.Assert no funciona no funciona. (ACTUALIZACIÓN: la solución actualizada funciona, vea los comentarios a continuación).

Yo uso Mono 2.10.5-1 en Ubuntu 11.10.

C # en mono – http://ebsteblog.wordpress.com/2009/05/06/debugassert-and-mono/

Extracto del artículo:

… si crea un archivo .config para su aplicación y establece el atributo assertuienabled en verdadero, obtendrá el mismo cuadro de diálogo que con .NET … Archivo app.config:

       

Respuesta anterior: comentario de C ++ si no especificó -definir DEBUG en las opciones de línea de comandos / comstackción.

Para agregar depuración

 #define DEBUG 

al comienzo del código o

 #define TRACE 

para rastrear

Vea la solución aquí: http://lists.ximian.com/pipermail/mono-list/2006-December/033774.html

ps: intenté esto con C ++ no C #. Esto puede no funcionar para C #.

Puede usar la configuración xml o puede colocarla bajo el control de su progtwig agregando un detector de seguimiento en tiempo de ejecución:

 var tl = new System.Diagnostics.ConsoleTraceListener(); System.Diagnostics.Debug.Listeners.Add ( tl ); 

Esto tiene la ventaja adicional de poder habilitarlo después de que el progtwig haya comenzado.