Linux 下编译与调试基础
Linux 下编译好的代码,默认是 release 模式,无法直接调试。程序要调试的话,必须是 debug 模式,也就是说编译的时候要加 -g 选项。
编译示例
创建一个累加的代码文件 mycode.c:
#include <stdio.h>
int Sum(int s, int e) {
int result = 0;
int i = s;
for (; i <= e; i++) {
result += i;
}
return result;
}
int main() {
int start = 1;
int end = 100;
printf("I will begin\n");
int n = Sum(start, end);
printf("running done, result is:[%d-%d]=%d\n", start, end, n);
return 0;
}
创建 Makefile 文件,生成可调试的文件:
mycode: mycode.c
gcc -o $@ $^ -g
.PHONY: clean
clean:
rm -f mycode
运行 make 后生成的可执行文件携带调试信息,可以使用 gdb 进行调试操作。退出 gdb 输入 quit 即可。
GDB 基础命令
查看源代码
显示源代码可以直接输入 list(简写 l)。
l 1:从第一行开始查看。- 直接回车:显示当前上下文的所有代码。
断点管理
在特定行打断点,程序运行到此处会暂停。
b 19:在第 19 行设置断点。- :查看所有断点的信息(编号、类型、地址等)。


