有些时候,如果你用F5运行调试时,系统的某些函数会拒绝你进行调试,我猜测是在其函数内部做了检查.他会弹出个对话框,说发现了调试模式还有什么不可以有ice的服务什么的.这中情况时常出现,现在来说一种解决方法:
1 在本打算打断点的地方,写入 嵌入式汇编语句 __asm int 3
2 直接Ctrl+F5执行,当执行到写汇编的位置时将报程序异常 ,通常会"确定"中止,"取消"进行调试,点"取消"
3 让你选调试器,可以选原工程的那个,编译器将附加到进程,还会问你"中断"么,你告诉他"中断"!
4 ok,看到int 3 的位置了么 F10继续吧.
说明: 有些情况下是某些函数会阻止你在调试模式下运行,所以 int 3 要打到函数后面,也可以在调试线程的时候用此方法在线程里写int3
优点:你也可以直接用编译器附加到进程的方法进行调试,但是那种方法不如这样直接位置准确,而且不一定刚好绕过那个函数
其实 int 3 就是软件中断的 断点 指令,如果你反汇编你的程序你就会发行在一些没有代码的地方就是 int 3指令,编译器用这种方法来指示代码越界.如有更好的方法请告诉我下哦
兰海