#hello.c
#include <stdio.h>
int main(void) {
  printf("Hello, Linux World!\n");
  return 0;
}
#Makefile
hello:hello.c  
	gcc gcc -g -o hello hello.c

.PHONY: clean

clean:
	rm hello
  1. 进入gdb
gdb ./hello
  1. 查看源码
(gdb)l
1	#include <stdio.h>
2	int main(void) {
3	  printf("Hello, Linux World!\n");
4	  return 0;
5	}
  1. 设置断点
(gdb)b 3

这样会在运行到源码第3行时停止,可以查看变量的值、堆栈情况等;这个行号是gdb的行号。

  1. 查看断点处情况
(gdb) info b
  1. 运行代码  
(gdb) r
  1. 显示变量值
(gdb) p n

在程序暂停时,键入"p 变量名"(print)即可;

  1. 观察变量
(gdb) watch n

在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点;

  1. 单步运行
(gdb) n
  1. 程序继续运行  
(gdb) c

使程序继续往下运行,直到再次遇到断点或程序结束;

  1. 退出GDB
(gdb) q