On Oct 27, 2011, at 1:33 PM, Steve Lessard wrote:
> Debug builds of my Mono command line application blow right by all
> Debug.Assert statements, even the ones I know fail the assertion. Heck, even
> Debug.Assert(false, "Foo") gets ignored. Neither running standalone on the
> command line via Terminal.app nor running in MonoDevelop's debugger makes a
> difference; the asserts are always ignored. I've checked, double-checked,
> and even triple checked that I am created Debug builds. Is there any way to
> force Mono to honor the asserts?
By default, the DefaultTraceListener prints nothing (as there's no real
equivalent to OutputDebugString() on not-Windows). You can set an environment
variable to override this behavior; see the remarks for the
DefaultTraceListener type:
http://docs.go-mono.com/index.aspx?link=T%3aSystem.Diagnostics.DefaultTraceListener
$ export MONO_TRACE_LISTENER=Console.Error:+++
$ mono yourapp.exe
However, this is purely console based, so no dialog box yelling "abort, retry,
ignore." If you want something more elaborate, you'll need to write it and add
it to the Listeners collection, as Nicholas Frechette suggested.
You should also re-read the compiler output to ensure that -define:DEBUG is on
the command line, or add a `#define DEBUG` to the relevant file, otherwise the
compiler will omit the Debug.Assert() call.
- Jon
_______________________________________________
Mono-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list