VS编译选项Debug与Release的区别
IT老混混 2016-02-07 04:57:18 这段代码为什么使用Release模式编译时和Debug不一样,Debug编译运行不会奔溃,Release会奔溃:
#include
#include
int main(){
CONTEXT* contex;
EXCEPTION_RECORD* exception;
__asm{
call seh
mov ecx,dword ptr ss:[esp+0xC]
mov contex,ecx
mov ecx,dword ptr ss:[esp+0x4]
mov exception,ecx
}
if (exception->ExceptionCode==EXCEPTION_BREAKPOINT)
{
contex->Eip+=1;
printf("发现一个int3断点\n");
__asm{
xor eax,eax
retn
}
}
printf("异常不是我触发的\n");
__asm{
mov eax,1
retn
seh:
push dword ptr fs:[0]
mov dword ptr fs:[0],esp
}
__asm{
int 3
}
system("pause");
return 0;
}