0
点赞
收藏
分享

微信扫一扫

C语言复习(实用调试技巧)

1.调试的基本步骤
a.发现程序错误的存在
b.以隔离、消除等方式对错误进行定位
c.确定错误产生的原因
d.提出纠正错误的解决办法
e.对程序错误予以改正,重新测试

2.debug和release
debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。
release称为发布版本,往往进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好的使用。

3.VScode常用调试快捷键
F5-启动调试,经常用来直接调到下一个断点处;
F9-创建断点和取消断点,断点的重要性:可以在程序的任意位置设置断点,这样就可以使程序在想要位置停止执行,继而一步步执行下去;
F10-逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,也可以是一条语句
F11-逐语句,就是每次都执行一条语句,这个快捷键可以使执行逻辑进入函数内部(这是常用的);
Ctrl+F5-开始执行不调试,可以让程序直接运行而不调试。
调试时可以查看程序当前的信息:
查看临时变量的值;
查看内存信息;
查看调用堆栈;
查看汇编信息;
查看寄存器信息;

4.如何写出易于调试的代码
常见coding技巧:
a.使用assert
b.尽量使用const
c.养成良好的编码风格
d.添加必要的注释
e.避免编码的陷阱
eg:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>

//字符串拷贝
void my_strcpy(char* dest, const char* src)
{
    assert(dest != NULL);//断言-保证指针有效性
    assert(src != NULL);
    //将src指向的字符串拷贝到dest指向的空间,包含'\0'
    while (*dest++ = *src++)
    {
        ;
    }
}

int main()
{
    char arr1[] = "#############";
    char arr2[] = "hello";

    my_strcpy(arr1, arr2);

    printf("%s\n", arr1);

    return 0;
}

5.常见错误分类
a.编译型错误
直接看错误提示信息,解决问题,相对简单;
b.链接型错误
看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在,一般是标识符名不存在或拼写错误;
c.运行时错误
借助调试,逐步定位问题,最难处理。

举报

相关推荐

0 条评论