vs环境——c语言实用调试技巧(代码片段)

c语言宇 c语言宇     2023-01-16     587

关键词:

目录

什么是bug?

调试的目的

调试的基本步骤

Debug和Release的介绍

windows环境调试介绍

 1.选择Debug调试版本

 2.学会快捷键

 3.调试窗口的使用

 1.局部变量窗口 

 2.监视窗口

 3.内存查看窗口

 4.调用堆栈窗口


什么是bug?

bug是计算机领域专业术语,原意是臭虫,现在指程序上存在的漏洞和错误等。

调试的目的

调试,又称除错 ,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。

调试的目的:发现bug和修复bug。

一名优秀的程序  是一名出色的侦探。

调试的基本步骤

1.发现程序错误的存在。

2.以隔离,消除等方式对错误进行定位

3.确定错误产生的原因。

4.提出纠正错误的办法。

5.对错误予以改正,重新测试。

Debug和Release的介绍

如下面所示,在工程中,我们会看到Debug和Release两种版本

 Debug通常称为调试版本,它包含调试信息,并且不做任何优化,便于程序员调试程序。

 Release称为发布版本,它往往是进行了各种优化,使程序在代码大小运行速度上都是最优的,以便用户更好的使用。

 我们在自己写代码时选择Debug版本,以便更好的发现错误和改正错误。 

windows环境调试介绍

1.选择Debug调试版本

 2.学会快捷键

 F9

设置断点,断点的作用是使程序运行到断点处停止

断点就是上图中的那个小红点,再按一下F9断点会消失。 

 F5

启动调试和F9配合使用,F9将断点设置好后,用F5可直接跳到断点处。

F10

逐过程————按一下F10程序往下走一步。

 F11

逐语句,就是每次都执行一条语句但是这个快捷键键可以使我们的执行逻辑进入函数内部。

ctrl+F5

使程序直接运行而不进行调试

shift+F5

终止调试 

3.调试窗口的使用

 学会使用调试窗口,对寻找错误会有很大帮助

接下来以下面这段代码为例,进行讲解

#include<stdio.h>
int main()

	int i = 0;
	int arr[] =  1,2,3,4,5,6,7,8,9,10 ;
	for (i = 0; i < 10; i++)
	
		arr[i] = 9;
	

1.局部变量窗口 

 这个窗口可以查看局部变量的值及其变化

 

 2.监视窗口

 监视1.2.3.4都可以使用。监视窗口使用最广泛,极为方便,可自行输入要查看的变量或变量的地址。

 

 3.内存查看窗口

内存窗口,可以 查看内存信息

 要查询对象可自行输入。

4.调用堆栈窗口

 此窗口用下面这段代码进行讲解

#include<stdio.h>
void test3()

	printf("一键三连\\n");


void test2()

	test3();


void test1()

	test2();



void test()

	test1();

int main()

	test();

像栈一样的展示函数调用逻辑

 可观察到函数一步一步的调用逻辑

vs2017实用调试技巧(代码片段)

...改正,重新测试Debug和Release的介绍。肉眼的区别windows环境调试介绍1.调试环境的准备2.学会快捷键3、调试的时候查看程序当前 查看详情

继续分享5个实用的vs调试技巧(代码片段)

继续分享5个实用的vs调试技巧原总结调试vs2019vs前言我在上一篇文章《5个非常实用的vs调试技巧》中分享了5个我认为非常值得了解的vs调试技巧,本周继续分享5个很基础但同样实用的调试技巧。1.条件断点作用简介:顾名思义,... 查看详情

c语言初阶笔记程序员必须要会的实用调试技巧(含库函数strcpy和strlen的模拟实现)!!(代码片段)

...f;调试的概念及重要性调试的步骤Debug和Release的介绍windows环境调试介绍1.调试环境的准备2.学会快捷键F5F9F10F11CTRL+F53.调试的时候查看程序当前信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息4.自... 查看详情

vs编译器实用调试技巧

...是最优的,以便用户很好使用代码。二、debug的步骤1、将环境改为debug版本2、学会一些常用的快捷键最常使用的快捷键:F5:启动调试,和F9配合使用-------用来跳到下一个断点处,下面是举例 查看详情

vs环境下的调试小技巧(代码片段)

debug与release的区别debug通常称为调试版本release称为发行版本,在代码大小和速度上进行了优化如下代码:intmain() inti=0; intarr[10]=0; for(i=0;i<=12;i++) arr[i]=0; printf("hehe\\n"); system( 查看详情

08实用调试技巧(代码片段)

到这一章节,C语言初阶的基础知识基本完结,那么我们已经具备了基础的代码编程能力,还需要在牛客,LeetCode,PTA,洛谷等平台刷题训练,或参加编程竞赛提高自己编程水平。今天,我们来谈谈... 查看详情

c语言初阶笔记程序员必须要会的实用调试技巧(含库函数strcpy和strlen的模拟实现)!!(代码片段)

...f;调试的概念及重要性调试的步骤Debug和Release的介绍windows环境调试介绍1.调试环境的准备2.学会快捷键F5F9F10F11CTRL+F53.调试的时候查看程序当前信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息4.自... 查看详情

c语言有这个就够了七.实用调试技巧

(一)什么是BUG历史上第一个bug导致程序运行错误的对象(二)调试是什么调试就是破案的过程,因为有人写代码是这样的:1.调试又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。2.调试的基本步骤... 查看详情

论程序员的基本素养是什么?带你玩转最全的实用调试技巧(代码片段)

...试是什么?调试的基本步骤Debug和Release的介绍。windows环境调试介绍1.调试环境的准备2.学会快捷键3.调试的时候查看程序当前信息查看临时变量的值查看内存信息查看汇编信息查看寄存器信息4.多多动手,尝试 查看详情

实用调试技巧(代码片段)

调试技巧调试是什么?有多重要?一、调试的基本步骤二、Debug和Release的介绍。三、学会快捷键四、调试的时候查看程序当前信息五.实例实例一实例二六.如何写出好(易于调试)的代码示范注意七.编程常见错误... 查看详情

实用调试技巧下篇(代码片段)

🔴本文章是在VisualStudio2022(VS2022)编译环境下进行操作讲解文章目录3.2.调试的时候查看程序当前信息3.2.1.查看临时变量的值3.2.2.查看内存信息3.2.3.查看调用堆栈3.2.4.查看汇编信息🥳4.调试实例🥳5.如何写出&#... 查看详情

c语言调试小技巧(代码片段)

经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器。特别是在代码经过编译器一些比较复杂的优化后,会变得“难以辨认”,使用调试器... 查看详情

c语言学习--visualstudio基本调试方法(代码片段)

...目录调试的基本步骤Debug和Releaserelease对代码的优化Windows环境调试调试环境准备断点调试设置断点开始调试条件断点逐过程调试逐语句调试跳出函数快速运行到光标处监视窗口调用监视窗口设置监视项自动窗口局部变量窗口内存... 查看详情

c语言学习笔记超级炫酷的c语言实用小技巧,学会这些隐藏技巧,早下班一小时(代码片段)

C语言常常让人觉得它所能表达的东西非常有限。它不具有类似第一级函数和模式匹配这样的高级功能。但是C非常简单,并且仍然有一些非常有用的语法技巧和功能,只是没有多少人知道罢了。一、指定的初始化很多人都... 查看详情

c语言高级实用技巧(代码片段)

字符串相关1、字符串拼接字符串拼接的时候,由于长度问题,可能导致内存溢出。以下这种方法比较安全。chartest_str[256]=0;snprintf(test_str+strlen(test_str),sizeof(test_str)-strlen(test_str),"%s",...);内存相关1、free直接free空... 查看详情

window系统里chrome浏览器一些实用的调试技巧(代码片段)

说明某一天,我突然发现chrome浏览器竟是熟悉的陌生人,感觉好多操作都不知道,于是,我看了一些大佬写的笔记,自己把不会的一些整理了一下,记录起来,忘记的时候偶尔来看一看。1、开发者工具... 查看详情

window系统里chrome浏览器一些实用的调试技巧(代码片段)

说明某一天,我突然发现chrome浏览器竟是熟悉的陌生人,感觉好多操作都不知道,于是,我看了一些大佬写的笔记,自己把不会的一些整理了一下,记录起来,忘记的时候偶尔来看一看。1、开发者工具... 查看详情

es6的几个实用技巧,你了解吗?(代码片段)

本文给大家分享了es6的几个实用技巧,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧 Hack#1交换元素利用数组解构来实现值的互换leta=‘world‘,b=‘hello‘[a,b]=[b,a]console.log(a)//->helloconsole.log(b)//->worldHack#2调试我们... 查看详情