编辑器
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:
- 日志断点 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
粘贴