关闭

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

653人阅读 评论(0) 收藏 举报


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

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

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


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

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

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

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

                 兰海

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17880次
    • 积分:322
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    最新评论