In MSVC, DebugBreak() or __debugbreak cause a debugger to break. On x86 it is equivalent to writing \"_asm int 3\", on x64 it is something different. When compiling with gcc
Instead of using 'normal' debug breaks, why not use one of the following, like a divide by zero:
int iCrash = 13 / 0;
or dereference a NULL pointer:
BYTE bCrash = *(BYTE *)(NULL);
At least this is portable accross many platforms/architectures.
In many debuggers you can specify what action you want to perform on what exceptions so you can act accordingly when one of the above is hit (like pause execution, ala an "int 3" instruction) and an exception is generated.