Is there a portable equivalent to DebugBreak()/__debugbreak?

vividos picture vividos · Oct 6, 2008 · Viewed 42.3k times · Source

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 (or any other standard compiler) I want to do a break into debugger, too. Is there a platform independent function or intrinsic? I saw the XCode question about that, but it doesn't seem portable enough.

Sidenote: I mainly want to implement ASSERT with that, and I understand I can use assert() for that, but I also want to write DEBUG_BREAK or something into the code.

Answer

caf picture caf · Apr 6, 2011

A method that is portable to most POSIX systems is:

raise(SIGTRAP);