本博客所有资源,包括技术文章、软件、代码、还有脚本仅供技术学习交流,请勿用于商业及非法用途,如产生法律纠纷与本人无关,请在24小时内请及时删除。

自己写的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指令来触发异常。

posted @ 2012-03-19 15:17  INRG  阅读(494)  评论(2编辑  收藏  举报