VS2019配置与调试技巧

本文最后更新于:1 年前

常用配置项

主题

​ 用惯了VSCode的One Dark Pro主题,VS2019也可以直接在扩展里下载安装One Dark Pro主题插件,一键配置,懒人必备。效果如下图,关键字、字符串、类名都是不同颜色。

插件

Doxygen Comments

快速生成注释,常用的手法就是敲个/* 自动能补全后半个*/ ,以及在函数名上一行输入/** 再回车,可以自动生成函数注释

Highlight all occurrences of selected word++

老瞎眼必备,高亮选中关键词的所有引用

Visual Assist

番茄助手,远古时代的编码神器,用VS2010时非常有用,可以智能提示、关键词高亮、自动标错,功能很强大。不过到VS2019已经很智能了,基本就不再需要额外插件。更关键的是这个东西它有版权限制,我们公司之前还被发律师函了呃…

引入外部库

步骤

  1. 指定头文件路径

​ 项目右键 -> 属性 -> C/C++ -> 常规 -> 附加包含目录

  1. 指定库文件位置

​ 项目右键 -> 属性 -> 链接器 -> 常规 -> 附加库目录

  1. 指定使用哪个库(具体名称,如avutil.lib)

​ 项目右键 -> 属性 -> 链接器 -> 输入 -> 附加依赖项

问题

  • 特别注意 设置项目属性时和构建项目时的配置与平台 是否一致

  • 项目属性里的设置无误,已经指定了头文件路径,但是VS一直报错无法打开源文件 libavutil/log.h

    尝试删掉这一句,重新输一遍即可,在输入 / 之后会有智能路径提示,说明VS已经认识了这个路径

调试技巧

就说一下本菜鸡平常经常用到的。

快捷键

  • F9 -> 插入断点
  • F5 -> 运行程序
  • F10 -> 逐过程调试(不会进入函数内部)
  • F11 -> 逐语句调试
  • Shift + F11 -> 跳出函数
  • 向前/后导航 -> 鼠标侧边键(效率立升百分百)
  • ctrl + k , ctrl + f -> 格式化代码

窗口

  • 调用堆栈可以看到当前函数的调用关系
  • 断点窗口可以看到当前设置的所有断点
  • 自动窗口会显示当前代码行和上一代码行中所使用到的变量
  • 局部变量窗口会显示当前函数中的所有局部变量

正则搜索

​ 忽略索引,搜索数组名。例如想要搜索Sec_ARRAY[wTsrCycle].wSecID,但需去掉索引wTsrCycle这几个字符,则格式如: Sec_ARRAY[(.*)].wSecID

本地调试器

​ 如果想单独调试一个函数或直接跳到某一步,在程序运行后,先打上断点,然后右键代码行-> 设置下一条语句,或者直接拖动左侧的黄色小箭头

设置main函数的输入参数

​ 有时候主函数形式为 int main(int argc, char *argv[]),需要获取输入参数,但是在VS中直接运行程序是无法输入参数的,需要在项目属性页配置命令参数

Debug和Release模式宏定义

​ Debug模式下默认会定义宏 _DEBUG ,Release模式下默认会定义宏 NDEBUG,可以利用宏来控制某些调试代码只在Debug模式下构建的调试版程序中生效。

路径宏

​ 记录一些项目配置时路径宏的定义

ConfigurationName 配置名字,通常是Debug或者Release
IntDir 编译器使用的中间目录,产出obj文件
OutDir 链接器使用的输出目录
ProjectDir 项目目录
ProjectName 项目名字
SolutionDir 解决方案目录
TargetDir 目标输出文件所在的目录
TargetExt 目标输出的扩展名
TargetFileName 目标输出文件名,包括扩展名
TargetName 目标输出名,不包括扩展名
TargetPath 目标输出文件的全路径名

下图是更全的示例: