#ifdef _DEBUG
__asm int 3
#endif
当编译选项为 DEBUG 时,因为项目定义了 _DEBUG 宏,编译时会将 __asm int 3 指令编译进 可执行文件中。
当编译选项为 Release时,因为项目未定义 _DEBUG 宏,则可执行文件中不会包含 int 3 指令。
int 3:
是一条汇编指令,可让程序产生一个中断,让调试器捕获到。
①程序运行之后因为执行到了 int3 指令产生中断,因为程序未挂载调试器会产生 APPCRASH 事件,这时选择调试程序附加 vs
②断在了int 3这一行,此时点击 中断按钮回到 vs 的工作区间,就可以像普通的 窗口程序、控制台程序一样调试了。