#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指令來觸發異常。
摘自 inrg's blog