首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言——调试技巧

C语言——调试技巧

作者头像
小李很执着
发布2024-06-15 08:43:10
发布2024-06-15 08:43:10
57500
代码可运行
举报
文章被收录于专栏:学习笔记学习笔记
运行总次数:0
代码可运行

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

2.调试快捷键

最常使用的几个快捷键: F5 启动调试,经常用来直接调到下一个断点处。 (下一个断点是程序逻辑上的下一个断点,进入断点循环后相当于F11); F9 创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。 F10 逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句F11 逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最常用的)。 CTRL + F5 开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用

3.调试时查看程序当前信息

1.查看临时变量的值 

在调试开始之后,用于观察变量的值

 2.查看内存信息

在调试开始之后,用于观察内存信息。

3.查看调用堆栈 

通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所处的位置

4. 查看汇编信息

在调试开始之后,有两种方式转到汇编: (1)第一种方式:右击鼠标,选择【转到反汇编】:

 (2)第二种方式:可以切换到汇编代码

 5.查看寄存器信息

可以查看当前运行环境的寄存器的使用信息

4.调试C语言实现单链表的简单示例

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
#include <stdlib.h>

// 定义节点结构体
typedef struct Node {
    int data;
    struct Node* next;
} Node;

// 在链表末尾插入节点
void append(Node** head, int data) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->data = data;
    newNode->next = NULL;

    if (*head == NULL) {
        *head = newNode;
    } else {
        Node* current = *head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = newNode;
    }
}

// 遍历链表并打印所有节点的值
void printList(Node* head) {
    Node* current = head;
    while (current != NULL) {
        printf("%d ", current->data);
        current = current->next;
    }
    printf("\n");
}

int main() {
    Node* head = NULL;

    append(&head, 1);
    append(&head, 2);
    append(&head, 3);
    append(&head, 4);
    append(&head, 5);

    printList(head);

    return 0;
}

上述代码实现了一个简单的单链表,包含两个函数:append用于在链表末尾插入节点,printList用于遍历并打印链表中所有节点的值。

要在VS中调试这段代码,可以按照以下步骤进行:

  1. 打开Visual Studio,并创建一个新的C语言项目。
  2. 将上述代码复制到项目中的.c文件中(例如main.c)。
  3. 在需要设置断点的行的左侧行号部分单击,或者按下F9键,设置断点。在这个示例中,我们可以在printList(head)行上设置断点,以便在打印链表之前停止程序执行。
  4. 单击Start Debugging(或按下F5)开始调试程序。
  5. 程序将在设置的断点处停止执行。此时,您可以使用调试工具栏上的按钮(例如Step OverStep IntoStep Out)逐行执行代码,查看变量的值以及程序的执行流程。
  6. 在调试过程中,您可以在Locals窗口中查看变量的值,或者通过鼠标悬停在变量上来查看其当前值。
  7. 调试完成后,您可以点击Stop Debugging按钮(或按下Shift+F5)结束调试过程。

通过以上步骤,您可以使用VS进行C语言单链表代码的调试,并观察程序的执行过程和变量的值,以便定位和解决问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Debug和Release的介绍 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优 的,以便用户很好地使用。
  • 2.调试快捷键
  • 3.调试时查看程序当前信息
    • 1.查看临时变量的值 
    •  2.查看内存信息
    • 3.查看调用堆栈 
    •  5.查看寄存器信息
  • 4.调试C语言实现单链表的简单示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档