Visual Studio 2017+VisualGDB C语法着色异常问题求助
我之前也碰到过类似VisualGDB语法高亮抽风的情况,结合自己踩过的坑和实际调试经验,给你几个针对性的排查和解决方法:
重置VisualGDB的语法分析缓存
保存后着色消失大概率是本地缓存损坏导致的。操作步骤:打开VS的Tools菜单 →VisualGDB→Advanced→Reset C/C++ IntelliSense Cache,执行完后重启Visual Studio,让缓存重新生成。排查变量"timer"的命名冲突
光标放在"timer"上高亮丢失,很可能是这个变量名和STM32 HAL库、VisualGDB内置宏或者项目里的其他宏重名了。右键点击"timer"选择Go to Definition,看看是不是跳转到了某个宏定义而非你的变量声明。如果确实冲突,要么给变量改个名字(比如local_timer),要么在变量声明前加一行#undef timer解除宏定义(注意不要影响其他依赖该宏的代码)。检查VisualGDB的IntelliSense配置
右键项目 →Properties→VisualGDB→IntelliSense,先确认Enable advanced C/C++ IntelliSense是勾选状态;然后把Language standard设置成和你代码匹配的版本(STM32固件一般用C99)。另外可以尝试切换IntelliSense后端:把Use Clang-based IntelliSense和Use MSVC-based IntelliSense互相切换一下,不同后端对语法着色的处理逻辑有差异,可能能解决问题。重置VS的C/C++编辑器设置
有时候VS自身的编辑器配置错乱也会拖累VisualGDB。打开Tools→Options→Text Editor→C/C++→Advanced,确保Disable Squiggles是False,然后点击Reset Settings按钮重置所有C/C++编辑器设置,重启VS后再测试。更新VisualGDB到兼容版本
VS2017属于比较老的版本,对应的VisualGDB需要特定的兼容版本才能稳定运行。打开Tools→Extensions and Updates,找到VisualGDB检查是否有可用更新,安装最新的兼容版本后重启VS,很多兼容性问题都能通过更新解决。
内容的提问来源于stack exchange,提问作者Matheus Stumpf

