解决IAR不能设置断点

一、本人遇到的问题

将所有的断点全部删除,再Debug,看还会不会有提示。 再者,注意把工程选项里Linker->Output|Format中的Debug information for C-SPY勾上。生成HEX文件时会将此选项取消,仿真时需要重新勾选。

二、常见解决办法


1.Rebuild All重新编译

A.Project -> Clean:把前面编译后的文件删除;

B.Project -> Rebuild All:再重新编译所有文件。

这种情况比较常见,有可能是在更改了部分文件。

 
2.查看配置是否正确

A.生成Debug信息

Project -> Options -> C/C++ Compiler -> Output:勾选上“Generate debug informat” 这个选项。

B.链接包含Debug信息

Project -> Options -> linker -> Output:勾选上“Include debug information in output ” 这个选项。

 
3.代码优化等级较高

在某些场合下,比如要求执行代码的速度,或者代码容量比较大而芯片容量又有限,就需要对代码进行优化,优化的等级分多种。

没有特别要求,代码就可以不用优化。代码高度优化存在弊端,特别是代码不规范的情况下。有一点就是本文说的,高度优化的代码,会影响在线调试,可能你某部分代码被优化导致你不能打断点。

 

这个时候就容易出现:在先调试过程中,在反汇编的窗口中可以设置断点,在C编译区不能设置断点。

 

Project -> Options -> C/C++ Compiler -> Optimizations选择优化的等级:

### 如何在IAR嵌入式开发环境中设置和使用断点进行调试 #### 设置断点 为了能够在IAR集成开发环境中成功设置断点,需确认当前项目处于`Debug`模式下[^1]。进入该模式后,可以通过点击源代码编辑器左侧的灰色区域来放置断点;当鼠标悬停在此处时会变为手型图标,单击即可定一个红色圆圈表示的断点。 另外一种方式是在菜单栏选择`Debug -> Toggle Breakpoint`命令或者按下快捷键`Ctrl+F9`以在同一行插入/移除断点标记[^3]。 对于某些情况下无法正常工作的问题,可以考虑通过调整配置选项解决。具体来说,在`Options -> Debugger`路径下的设置界面里启用宏文件支持(`Use macro file`)可能有助于改善这一状况[^2]。 #### 使用断点进行调试 一旦设置断点之后,启动调试会话(通常按`F5`),程序运行到第一个遇到的断点位置便会暂停下来。此时可以根据需要逐步执行代码片段,比如利用`F10`(Step Over)跳过函数调用而不深入内部逻辑,或是采用`F11`(Step Into)深入探究每一行语句的具体行为。 ```python # 示例Python伪代码展示如何模拟上述过程中的某一部分功能实现 def debug_with_breakpoints(): while True: current_line = get_current_execution_point() if is_breakpoint_set(current_line): # 检查当前位置是否有断点 pause_program() # 如果有,则暂停程序 wait_for_user_input() # 等待用户交互决定下一步动作 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值