VisualStudio2019(课程:C/C++调试技巧大全)

2023-11-01 01:30

本文主要是介绍VisualStudio2019(课程:C/C++调试技巧大全),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

官网的文档:

https://docs.microsoft.com/en-us/visualstudio/ide/?view=vs-2017

目录

 2-VS2019下载安装

6-VS2017安装部署

7-解决VS2017缺少SDK8.1

8-项目类型建立错误处理

9-单点调试与但不跟踪

开始调试 F5

逐语句F11   跳出shift + F11

逐过程F10

10-断点管理与变量监控

监视窗口:Ct+Al+w + 1/2/3/4

断点查看:Ct+Al+B

11-内存监控

内存监控Ct+Al+M + 1/2/3/4

12-数组监控

13-结构体监控

14-多文件函数跳转

函数跳转:Ct+鼠标左键/ F12    Ct + -返回去

15-任意调整运行点

拖拽黄色的箭头,可以调整调试的过程

16-附加到进程调试

17-远程附加到进程调试【上】

18-远程附加到进程调试【下】

19-(番外篇)#pragma once与#ifndef

20-(番外篇)VisualStudio字符编码说明

21-(番外篇)VisualStudio内部SDL安全检查

22-(番外篇)内存泄露处理

23-(番外篇)处理键盘缓冲区导致的错误

24-(番外篇)让自己的程序运行在别人的电脑上

25-(番外篇)让程序运行在Windows XP上

26-(番外篇)DebugView远程调试【上】

27-(番外篇)DebugView远程调试【下】

C/C++调试技巧大全-CLion(七日成蝶)

1-CLion下载及部署

3-CLion常用配置

4-CLion断点调试初探

7-GDB调试与断点视图

8-Attach to Process方法调试

10-NginX载入CLion

11-CLion载入项目的注意事项

12-Makefile转CMakeLists

13-在CLion中编译并运行NginX

14-CLion调试NginX


C/C++调试技巧大全-VisualStudio(七日成蝶)

 2-VS2019下载安装

https://visualstudio.microsoft.com/zh-hans/

只选择了这个

 

6-VS2017安装部署

7-解决VS2017缺少SDK8.1

 Windows SDK version 8.1 

或者  

或者  

        可以首先安装SDK8.1,再装vs2017

8-项目类型建立错误处理

工程的类型:

1.控制台

main函数:

要使用:

2.窗口

要匹配否则就会出现以下的错误:

 

9-单点调试与但不跟踪

开始调试 F5

逐语句F11   跳出shift + F11

逐过程F10

显示值:

崩溃了可以查看这里:

10-断点管理与变量监控

监视窗口:Ct+Al+w + 1/2/3/4

打开这个监视的窗口,可以监控变量,注意要在这个作用域之间,才会查看变量。

离开作用域之后,就会变成灰色

断点查看:Ct+Al+B

可以选择,可以取消,灵活管理。

11-内存监控

内存监控Ct+Al+M + 1/2/3/4

12-数组监控

数组查看:

13-结构体监控

14-多文件函数跳转

函数跳转:Ct+鼠标左键/ F12    Ct + -返回去

15-任意调整运行点

拖拽黄色的箭头,可以调整调试的过程

16-附加到进程调试

源代码生成的进程可以调试,不是源代码生成的不行。还要是VS生成的exe,还要不能是一瞬即逝。

这里打开是父子关系:

独立打开:一个exe文件,可以加一个getchar();

 

17-远程附加到进程调试【上】

当前pc编译,运行到另外一台pc。

注意:

1.要匹配。

2.远程调试器的版本要匹配

这个路径:

为了使程序.exe文件直接在其它的机器运行,将其改为MTD。将用到的库用静态方式编进去。

找到:

放到要运行的pc:

 

18-远程附加到进程调试【下】

管理员运行:

 

 

打开代码:

完毕,就可以调试代码了。

19-(番外篇)#pragma once与#ifndef

效果一样的:第一种是Visual Studio自带的,不适合移植

20-(番外篇)VisualStudio字符编码说明

win32控制台:

win32windows程序:

在windows编程中:使用的是多字符集:这样写就可以了

如果改成了unicode就要加一个L。

21-(番外篇)VisualStudio内部SDL安全检查

还可以:

22-(番外篇)内存泄露处理

23-(番外篇)处理键盘缓冲区导致的错误

问题:

a回车之后,b没机会输入

 

清空缓冲区

多这样写:

24-(番外篇)让自己的程序运行在别人的电脑上

一个程序

直接拷贝exe文件给别人,别人的电脑上没有vs,会有如下的错误

或者

静态链接库:

 

一些运行库:

25-(番外篇)让程序运行在Windows XP上

静态库:

可以从win10 到win7,但是xp不行

编译一下会有这个错误:

现在更改一下:

ok  或者用V100就不会出现这个错误。

26-(番外篇)DebugView远程调试【上】

1.打开工具

2.打开状态的

3.打开,过滤器

4.清空

5.打开exe文件

27-(番外篇)DebugView远程调试【下】

 

打开另一台电脑:

打开exe

另一台设备打开:采集日志

C/C++调试技巧大全-CLion(七日成蝶)

1-CLion下载及部署

3-CLion常用配置

4-CLion断点调试初探

7-GDB调试与断点视图

断点视图

8-Attach to Process方法调试

1.先build

2.找出可执行文件

3.最后

10-NginX载入CLion

ok

 

ok

出现cmakefile 不能直接使用:  因为这是全部的。但有些没有使用

所以要对应起来:

 

可以用脚本

 

11-CLion载入项目的注意事项

根据提示:

用clion导入之后 就会有

所以要用脚本 处理一下

 

12-Makefile转CMakeLists

改:

  再build

13-在CLion中编译并运行NginX

运行,关闭旧的启动

 

14-CLion调试NginX

将worker 和 master 合并,关闭守护进程的模式

再调试

现在请求:

卡在断点上:

 

这篇关于VisualStudio2019(课程:C/C++调试技巧大全)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319530

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)