自己写的assert宏,使用int3断点
#ifdef MTK_ASSERT
#define assert(p) do{ \
if(!(p)){ \
logPrint("Assertion failed:%s\nFile:%s\nLine:%d \n", #p, __FILE__, __LINE__); \
__asm {int 3} \
} \
}while(0)
#else
#define assert(p)
#endif
摘自百度百科片段:
INT3断点是断点的一种,在诸如Ollydbg中的快捷键是F2,是一种很常用的断点类型。INT3指令的机器码为CC,所以通常也称之为CC指令。当被调试进程执行INT3指令导致一个异常时,调试器就会捕捉这个异常从而停在断点处,然后将断点处的指令恢复成原来的指令。当然,如果自己写调试器,也可以用其他一些指令代替INT3指令来触发异常。