VS2019配置与调试技巧
本文最后更新于:1 年前
常用配置项
主题
用惯了VSCode的One Dark Pro主题,VS2019也可以直接在扩展里下载安装One Dark Pro主题插件,一键配置,懒人必备。效果如下图,关键字、字符串、类名都是不同颜色。
插件
Doxygen Comments
快速生成注释,常用的手法就是敲个/* 自动能补全后半个*/ ,以及在函数名上一行输入/** 再回车,可以自动生成函数注释
Highlight all occurrences of selected word++
老瞎眼必备,高亮选中关键词的所有引用
Visual Assist
番茄助手,远古时代的编码神器,用VS2010时非常有用,可以智能提示、关键词高亮、自动标错,功能很强大。不过到VS2019已经很智能了,基本就不再需要额外插件。更关键的是这个东西它有版权限制,我们公司之前还被发律师函了呃…
引入外部库
步骤
- 指定头文件路径
项目右键 -> 属性 -> C/C++ -> 常规 -> 附加包含目录
- 指定库文件位置
项目右键 -> 属性 -> 链接器 -> 常规 -> 附加库目录
- 指定使用哪个库(具体名称,如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 | 目标输出文件的全路径名 |
下图是更全的示例: