0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解决IAR不能设置断点的问题

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-20 10:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面

有网友问:我在使用IAR在线调试过程中不能打断点,但在编辑的时候可以打断点,一点击调试按钮之后,所打的断点就失效了······

类似的问题:在先调试过程中,在反汇编的窗口中可以设置断点,在C编译区不能设置断点。

查看断点的方法:菜单view->breakpoints 就会在窗口显示所有断点信息。

通常出现这类现象是因为你要加断点的位置并没有程序(或不匹配程序),也就是你的C代码和你的实际代码对不上号了。遇到以上问题,解决的办法一般有下面几种。

常见解决办法

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选择优化的等级:

4.代码处于条件编译未选中状态

什么是条件编译呢?

就是#if #else #endif 这类带有#的预处理编译。

如果你的代码不再预编译里面,则不能打断点。

5.推测的问题

我们都知道软件一般都会存在bug,即使是强大的Windows、iOSAndroid操作系统也经常修复或升级。

若怀疑是IAR软件自身的问题,建议升级到最新。我个人喜欢尝试新鲜的东西,之前看过我文章的人都知道,Keil、IAR新版我和大家分享过。若你IAR出现此类问题,上面几种方法都无效,建议更新IAR版本:

IAR for STM8介绍、下载、安装与注册

IAR for ARM介绍、下载、安装与注册

其他问题都排除了,还有可能是Windows系统高度优化的问题,这个建议重装系统。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IAR
    IAR
    +关注

    关注

    5

    文章

    400

    浏览量

    38344
  • 在线调试
    +关注

    关注

    0

    文章

    5

    浏览量

    6660
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电能质量在线监测装置支持断点续传的文件传输协议有哪些?

    电能质量在线监测装置针对 文件级断点续传 (如故障录波文件、历史数据报表、谐波频谱文件等),主要支持以下专用文件传输协议,不同协议在安全性、传输效率与适用场景上各有侧重: 一、核心支持的文件传输协议
    的头像 发表于 12-05 17:46 2727次阅读
    电能质量在线监测装置支持<b class='flag-5'>断点</b>续传的文件传输协议有哪些?

    基于蜂鸟E203的硬件断点功能添加

    先读回Debugger,保存起来,然后把一条特殊指令写到这个地址去,从而在运行时识别。这种方法的优点时数目不受限制,但是由于要写memory,所以不能设置在ROM中。硬件断点,则需要硬件寄存器支持
    发表于 10-23 07:11

    debug调试的时候断点失效了,程序不能跑到断点,怎么解决?

    断点的作用失效,该怎么处理 出现这种情况的时候是因为但是在debug的时候将jlink拔出来了,再恢复的时候出现这个问题,已经将软件重新安装了一边,还是很会出现这个问题。
    发表于 10-14 06:12

    工业网关的断点续传有哪些作用

    工业网关的断点续传功能在工业场景中具有重要作用,它通过在数据传输中断后能够从中断点继续传输,而非重新开始,显著提升了数据传输的可靠性、效率和灵活性。以下是其核心作用及具体应用场景的详细分析: 1.
    的头像 发表于 10-10 13:58 298次阅读

    UPS电源“不间断点”全解析:技术原理、关键指标与选购避坑指南

    在电力依赖度极高的现代场景中,UPS(不间断电源)的“不间断点”能力直接决定了其能否真正守护关键设备的稳定运行。本文将从技术本质、实现方式、核心指标到选购策略,系统解析这一核心概念,助您精准选择适合
    的头像 发表于 09-23 08:49 709次阅读
    UPS电源“不间<b class='flag-5'>断点</b>”全解析:技术原理、关键指标与选购避坑指南

    工业智能网关的断点续传功能体现在那些方面

    工业智能网关是连接工业设备(如PLC、传感器、机器人、数控机床等)与云端平台(如SCADA、MES、ERP等)的硬件或软件设备,具备数据采集、协议转换、边缘计算、安全防护、断点续传等功能,是工业物
    的头像 发表于 09-15 14:31 512次阅读
    工业智能网关的<b class='flag-5'>断点</b>续传功能体现在那些方面

    如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?

    如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?
    发表于 08-26 07:49

    如何为新唐 8051 系列设置 IAR 8051 工作台项目?

    如何为新唐 8051 系列设置 IAR 8051 工作台项目
    发表于 08-25 06:26

    在 Keil / IAR 开发环境下的 Debug 模式下,用户是否可以在空闲 ru 期间立即添加新的断点

    在 Keil / IAR 开发环境下的 Debug 模式下,用户是否可以在空闲 ru 期间立即添加新的断点
    发表于 08-21 07:56

    请问如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?

    如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?
    发表于 08-20 06:23

    IAR平台现已提供对Zephyr RTOS的量产级支持

    IAR宣布,其嵌入式开发平台正式推出对Zephyr RTOS的量产级支持。该支持自IAR的Arm开发工具链v9.70起全面提供。
    的头像 发表于 07-09 15:43 349次阅读

    边缘计算网关支持断点续传吗

    边缘计算网关通常支持断点续传功能 。断点续传功能是边缘计算网关的重要特性之一,它能够在网络中断或设备故障时,将采集到的数据暂存在本地存储空间中,待网络恢复后再将数据上传至云平台,从而保证数据的完整性
    的头像 发表于 05-27 15:25 538次阅读

    Keil C51与Proteus联调,为何在Keil中设置断点失效?

    Keil5 C51+Proteus 8.17 sp5环境,在调试时能够在反汇编窗口设置断点,并能正常调试,在C源代码窗口设置断点变成\"!\",也
    发表于 04-02 10:08

    openocd为什么不能调试?

    设置任何断点 则debug模式启动就会异常(不设置断点则能正常输出) 有谁知道为什么“Pre-run/Restart reset” 会造成调试异常么,在线等~~
    发表于 03-07 14:33

    HarmonyOS NEXT 原生应用/元服务-ArkTS代码调试使用断点

    光标置于该行上并按Ctrl + F8(macOS为Command+F8)。 当您设置断点时,相应的代码行旁边会出现一个红点,如图。 在设置断点红点处,单击鼠标右键,在Conditio
    发表于 03-04 17:15