Когда утверждение не выполняется с Visual С++ в Windows, отладчик останавливается, отображает сообщение, а затем позволяет продолжить (или, если сеанс отладки не работает, предлагает запустить визуальную студию для вас).
В Linux кажется, что поведение по умолчанию assert() заключается в отображении ошибки и выходе из программы. Поскольку все мои утверждения проходят макросы, я пытался использовать сигналы, чтобы обойти эту проблему, например
#define ASSERT(TEST) if(!(TEST)) raise(SIGSTOP);
Но хотя GDB (через KDevelop) останавливается в правильной точке, я не могу продолжать проходить мимо сигнала, и отправка сигнала вручную внутри GDB просто оставляет меня зависанием, не контролируя ни GDB, ни отлаживаемый процесс.