【C++】关于 Visual Studio 的使用技巧(保姆级教程)
fliter 视图
visual studio默认是filter视图(中文为筛选器)

项目下的是filter而非硬盘目录里实际的文件夹,这时新建的也是filter

想要查看硬盘目录里实际的文件夹,点击按钮“show all files(显示所有文件)”即可

输出文件位置设置
自定义输出文件位置:
右键项目,选择“Properties(属性)”->“General”->“Output Directory”“Intermediate Directory”(图中展示选项的中文)

注意“Configuration(配置)“为”All Configurations(所有配置)”,“Platform(平台)”为“All Platforms(所有平台)”
这边也给出大佬们喜欢用的设置:
Output Directory:$(SolutionDir)bin\$(Platform)\$(Configuration)\
Intermediate Directory:$(SolutionDir)bin\intermediates\$(Platform)\$(Configuration)\
如果你看不懂其指代的具体路径,对路径选择“Edit(编辑)”->“Macros”即可查看

应用后可以右键解决方案,选择“Clean Solution(清理解决方案)”即可去掉旧文件
查看预处理结果
首先简答介绍一下编译器的工作原理:编译器首先处理预处理语句,将头文件内容全部复制到代码文件中;其次编译器将所有C++代码转化为机器码,每个cpp文件都被编译成一个目标文件(.obj);最后将独立的目标文件合并成一个可执行文件
Visual Studio默认不输出预处理的结果,想要查看预处理结果需要在“Properties(属性)”->“C/C++”->“Preprocessor”中,将“Preprocess to File”设置为“Yes”(确保编辑的是当前的配置),编译后机会输出预处理文件(.i)

将目标文件转换为可读的汇编
编译器编译文件时,每个cpp文件都被编译成一个目标文件(.obj),出于一些调试需求,我们可能需要阅读编译出的汇编语言
在“Properties(属性)”->“C/C++”->“Output Files”中,修改“Assembler Output”即可

自定义程序入口
一个可执行文件一定是以main函数为入口吗?答案是否定的
在“Properties(属性)”->“Linker”->“Advanced”中,可以自定义Entry Point

调试时查看变量在内存中的具体值
最常见的是用autos,locals和watch监视变量:
autos(自动变量窗口):显示当前行和前几行代码中使用的变量,以及下一个将要执行的行中的变量
locals(局部变量窗口):显示当前作用域中的所有局部变量及其值
watch(监视窗口):允许手动添加并监视任意变量、表达式或内存地址

(这里对象p的成员变量Name没有赋值)
一个更高级的方法是查看变量在内存中的具体值:“DEBUG”->“Windows”->“Memory”->“Memory 1”

在“Address”中输入变量的内存地址(别忘了使用&取址)即可找到变量在内存中的具体值

这里我输入了一个字符串指针,其指向字面量"hello",可以发现内存存储的内容对应了"hello"的 ASCII 编码,只不过由于是64位,因此字符串指针默认为8字节

查看代码的反汇编
在调试时,右键“Go To Disassembly”


如文章有误或疏漏,欢迎评论指出
如有帮助,欢迎关注我的博客,后续也会更新其他的技术内容(坚持日更ing)
特别推荐 Cherno 的C++课程,可以去某管订阅他的频道,B站也有转载
【C++】关于 Visual Studio 的使用技巧(保姆级教程)的更多相关文章
- 11个强大的Visual Studio调试小技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- Visual Studio的调试技巧
Visual Studio的调试技巧 [原文地址] Debugging Tips with Visual Studio 2010 [原文发表日期] 2010/8/19 10:48 AM 这是我写的关于 ...
- 11个强大的Visual Studio调试小技巧(转)
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- 提高你开发效率的十五个Visual Studio 2010使用技巧
提高你开发效率的十五个Visual Studio 2010使用技巧 相信做开发的没有不重视效率的.开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS.能够对一个IDE产生依赖,说明这个ID ...
- Visual Studio 使用调试技巧
Visual Studio 使用调试技巧 这篇文章来源于http://damieng.com/blog/2014/02/05/8-visual-studio-debugging-tips-debug- ...
- visual studio 2017使用技巧
visual studio 2017使用技巧 批量删除代码中的空白行 Ctrl + H, 查找: ^(?([^\r\n])\s)*\r?$\r?\n 替换: 使用正则表达式 当前文档 常用快捷键 注释 ...
- Visual Studio Code配置技巧
Visual Studio Code配置技巧 VS Code是啥 Visual Studio Code(以下简称 VS Code) 是一个免费.开源.跨平台的由微软开发的程序编辑器.它是用 TypeS ...
- 12个Visual Studio调试效率技巧
在这篇文章中,我们假定读者了解VS基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果 ...
- Visual Studio 2017 系统发布部署服务器教程
Visual Studio 2017 系统发布部署服务器教程 一.公司网站部署 --- 第一档 _Visual Studio 2017 发布网站系统教程 二.公司网站部署 --- 第二档 ...
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
随机推荐
- 学习高校课程-软件设计模式-OOP 和 UML 类图 OOP 与 Java(lec1)
Lecture 1:OOP and UML Class DiagramsOOP with Java OOP 和 UML 类图 OOP 与 Java Object-Oriented Programmin ...
- 如何基于Java解析国密数字证书
一.说明 随着信息安全的重要性日益凸显,数字证书在各种安全通信场景中扮演着至关重要的角色.国密算法,作为我国自主研发的加密算法标准,其应用也愈发广泛.然而,在Java环境中解析使用国密算法的数字证书时 ...
- Servlet——xml配置Servlet
XML配置方式编写 Servlet 步骤: 1.编写 Servlet 类 2.在 web.xml 中配置该Servlet
- 墨天轮专访TDengine陶建辉:坚持做难而正确的事,三次创业成就不悔人生
导读: 时序数据库(Time Series Database)在最近几年被越来越多的用户接受并使用,并有广泛的应用场景.云原生时序数据库 TDengine 一直稳居墨天轮时序数据库榜首,其近期的海外发 ...
- c#传统读取配置文件
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.Json; namespace C ...
- Android复习(三)清单文件中的元素——>uses-sdk
<uses-sdk> Google Play 会利用在应用清单中声明的 <uses-sdk> 属性,从不符合其平台版本要求的设备上滤除您的应用.在设置这些属性前,请确保您了解 ...
- 关系图谱后端不给指向性字段使用children
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- 云原生动态周刊:你订阅 GitHub README 播客了吗?
云原生一周动态要闻: Apache Kafka 3.0.0 发布 Deis Labs 推出 WebAssembly PaaS 平台 Hippo Mirantis Flow 将数据中心重塑为云原生系统 ...
- KubeSphere 助力提升研发效能的应用实践分享
作者:卢运强,主要从事 Java.Python 和 Golang 相关的开发工作.热爱学习和使用新技术:有着十分强烈的代码洁癖:喜欢重构代码,善于分析和解决问题.原文链接. 我司从 2022 年 6 ...
- vscode中整合豆包MarsCode编程助手
豆包MarsCode是字节跳动旗下的一款AI工具,最近在刷帖子时看到已经可以在vscode中通过插件安装MarsCode工具,接下来我们来看下操作流程以及使用效果. 第一步:首先需要注册下豆包账号 豆 ...