某些无法调试的情况的解决


     有些时候,如果你用F5运行调试时,系统的某些函数会拒绝你进行调试,我猜测是在其函数内部做了检查.他会弹出个对话框,说发现了调试模式还有什么不可以有ice的服务什么的.这中情况时常出现,现在来说一种解决方法:

    1 在本打算打断点的地方,写入 嵌入式汇编语句 __asm int 3

    2 直接Ctrl+F5执行,当执行到写汇编的位置时将报程序异常 ,通常会"确定"中止,"取消"进行调试,点"取消"


   3 让你选调试器,可以选原工程的那个,编译器将附加到进程,还会问你"中断"么,你告诉他"中断"!

   4 ok,看到int 3 的位置了么 F10继续吧.

  说明: 有些情况下是某些函数会阻止你在调试模式下运行,所以 int 3 要打到函数后面,也可以在调试线程的时候用此方法在线程里写int3

   优点:你也可以直接用编译器附加到进程的方法进行调试,但是那种方法不如这样直接位置准确,而且不一定刚好绕过那个函数
  
 其实 int 3 就是软件中断的 断点 指令,如果你反汇编你的程序你就会发行在一些没有代码的地方就是 int 3指令,编译器用这种方法来指示代码越界.如有更好的方法请告诉我下哦

                 兰海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值