Skip to content

编辑器

VSCode

安装VSCode

下载地址

https://code.visualstudio.com/

安装插件

  • C/C++ Extension Pack
  • Code Runner
  • chinese
  • c/c++
  • c/c++ Themes
  • cMake
  • cMake Tools

安装工具链

  • gcc
  • cmake
  • gdb

Windows开发环境MinGW-w64

编译和运行

c
// main.c
#include<stdio.h>

int main(){
    int i = 0;
    i++;
    
    printf("i = %d\n", i);

	return 0;
}

VSCode GDB调试

调试:

  • 查看变量
  • 内存数据
  • 调用栈

各种断点:

  • 条件断点
    • 条件表达式 eg: i > 1
    • 命中次数 eg: 5
  • 日志断点 eg: i = {i}
  • 函数断点
  • 数据断点
  • 内嵌断点

查看内存数据

bash
x/[重复次数][字符格式][字节大小] expression

重复次数: 正数、负数、零

字符格式

  • t 二进制
  • o 八进制
  • d 十进制
  • u 无符号十进制
  • x 十六进制
  • z 十六进制,左侧零填充
  • f 浮点数
  • a 地址
  • i 指令
  • c 字符
  • s 字符串

字节大小

  • b 字节
  • h 半字节
  • w 字
  • g 8字节

示例

c
// main.c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int data[5] = {1, 2, 3, 4, 5};

int main(){
    int i = 0;
    i++;

    printf("i = %d\n", i);
    
    int *target = malloc(sizeof(data));
    memcpy(target, data, sizeof(data));
    printf("target= %d\n", target[0]);

	return 0;
}

查看target的值

bash
-exec x/5d target
0x7fdf14904080: 1
0x7fdf14904084: 2
0x7fdf14904088: 3
0x7fdf1490408c: 4
0x7fdf14904090: 5

查看main的入参

macos平台

添加文件

.vscode/tasks.json

json
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc build active file",
            "command": "/usr/bin/gcc",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

.vscode/launch.json

json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": ["arg1", "arg2"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

其中,program要和tasks.json 文件中配置的输出路径保持一致

CLion

下载地址

https://www.jetbrains.com.cn/clion/

CLion设置

快捷键

  • Shift + Alt + 键盘上/下 控制当前行上下移动
  • Ctrl + d 复制当前行
  • home/end 移动到行首/行尾
  • Ctrl + 键盘左/右 光标左右跳单词
  • Ctrl + a 全选
  • Ctrl + c 复制
  • Ctrl + v 粘贴