IAR在线调试不能设置断点 、 IAR断点无效android
转载自http://blog.csdn.net/ybhuangfuguiios
有网友问:我在使用IAR在线调试过程当中不能打断点,但在编辑的时候能够打断点,一点击调试按钮以后,所打的断点就失效了······优化
相似的问题:在先调试过程当中,在反汇编的窗口中能够设置断点,在C编译区不能设置断点。ui
查看断点的方法:菜单view->breakpoints 就会在窗口显示全部断点信息。spa
一般出现这类现象是由于你要加断点的位置并无程序(或不匹配程序),也就是你的C代码和你的实际代码对不上号了。遇到以上问题,解决的办法通常有下面几种。操作系统
A.Project -> Clean:把前面编译后的文件删除;.net
B.Project -> Rebuild All:再从新编译全部文件。debug
这种状况比较常见,有多是在更改了部分文件。调试
A.生成Debug信息orm
Project -> Options -> C/C++ Compiler -> Output:勾选上“Generate debug informat” 这个选项。
B.连接包含Debug信息
Project -> Options -> linker -> Output:勾选上“Include debug information in output ” 这个选项。
在某些场合下,好比要求执行代码的速度,或者代码容量比较大而芯片容量又有限,就须要对代码进行优化,优化的等级分多种。
没有特别要求,代码就能够不用优化。代码高度优化存在弊端,特别是代码不规范的状况下。有一点就是本文说的,高度优化的代码,会影响在线调试,可能你某部分代码被优化致使你不能打断点。
这个时候就容易出现:在先调试过程当中,在反汇编的窗口中能够设置断点,在C编译区不能设置断点。
Project -> Options -> C/C++ Compiler -> Optimizations选择优化的等级:
什么是条件编译呢?
就是#if #else #endif 这类带有#的预处理编译。
若是你的代码再也不预编译里面,则不能打断点。
咱们都知道软件通常都会存在bug,即便是强大的Windows、iOS、Android操做系统也常常修复或升级。
若怀疑是IAR软件自身的问题,建议升级到最新。我我的喜欢尝试新鲜的东西,以前看过我文章的人都知道,Keil、IAR新版我和你们分享过。若你IAR出现此类问题,上面几种方法都无效,建议更新IAR版本:
其余问题都排除了,还有多是Windows系统高度优化的问题,这个建议重装系统。