Debugging with gdb on Posix but setAssertHandler is deprecated

Sean Kelly sean at invisibleduck.org
Sun Nov 21 07:00:29 PST 2010


Jens Mueller <jens.k.mueller at gmx.de> wrote:
> Hi,
> 
> I've written a small module for debugging on Posix systems.
> It uses raise(SIGTRAP) and a custom errorHandlerType with
> setAssertHandler. But setAssertHandler is deprecated.
> Why is it deprecated? How should I do it instead?
> 
> I want to do it generally for Error and Exception. Don't know how yet.
> How do you debug your programs? I've read that gdb has catch throw for
> C++ to break when exceptions are thrown. I don't like changing gdb for
> this.
> My idea is that instead of throwing an Error/Exception I print it and
> then raise SIGTRAP.

It's deprecated because DMD doesn't generate a valid call stack when
generating an assert, so if you try to return from the assert handler
instead of throwing the app will crash.


More information about the Digitalmars-d mailing list