VSCode禁用Arduino编译优化以进行调试 [英] VSCode disabling Arduino compilation optimizations for debugging

查看:0
本文介绍了VSCode禁用Arduino编译优化以进行调试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用默认的VSCode Arduino配置,编译器将生成的代码优化为完全优化的,因此使用Cortex-Debug进行调试几乎是不可能的,因为代码已优化出来,单步执行到处跳来跳去。

关于如何禁用所有编译器优化有什么建议吗?

推荐答案

我不知道您使用的是什么开发板,我使用的是Adafruit M0 Express。Adafruit已经为他们的大多数SAMD板创建了板配置选项。如果您编辑boards.txt文件。下图是Father M0 Express的VSCode Arduino的标准板选择器,请注意附加的调试选项。Adafruit在其M4主板上实现了更广泛的优化选择。从该示例建模,您可以分别切换调试和优化。

单击here查看VSCode中的示例

我的Adafruit电路板在这里: C:UsersGregTerrellAppDataLocalArduino15packagesadafruithardwaresamd1.5.11

的boards.txt默认为 .menu.debug.on.build.flags.debug=-g

将其更改为 .menu.debug.on.build.flags.debug=-g -O0

如果您查看构建详细信息,编译器命令行将具有-Os,稍后您应该会发现"-g-O0"。GCC文档指出,如果遇到多次出现的标志,则编译器标志的最新版本将用于构建。

备注:

  1. 您必须重新启动VSCode才能使更改生效。
  2. 备份或记录如何更改boards.txt文件。从Arduino IDE中更新您的主板将覆盖您的更改。

这篇关于VSCode禁用Arduino编译优化以进行调试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆