Eu observei o mesmo problema com versões recentes do Cygwin. Ainda não sei o que está causando isso, mas a função Windows SetErrorMode parece funcionar:
{
const UINT oldErrorMode = ::SetErrorMode(0);
::DebugBreak();
::SetErrorMode(oldErrorMode);
}
Apenas uma dica: se você estiver usando o MSVC, use a função intrínseca __debugbreak (). Ele coloca a quebra nesse ponto no código, em vez de dentro de uma função chamada a partir daí. Algumas montagens inline podem fazer esse truque em outros compiladores.