gdb工具的使用
gcc 自带 gdb工具:gcc -v
gdb -help
使用gdb编译c文件:gcc -g main.c -o main.out
使用gdb调试:gdb ./main.out
列出源代码:l
继续列出源代码:l
或 回车
开始调试:start
(显示的代码是将要执行的代码,不是已执行的)
打印变量:p a
(print a)
继续执行下一行: n
(next)
进入查看函数:s
查看函数堆栈:bt
切换函数堆栈: f 1
(切换到函数号为1的函数 func 1)
退出调试:q
main.c
#include <stdio.h>
void change(int *a,int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
//如果没有指针,change()中的a,b只在change()函数内有效
}
int main()
{
int a = 5;
int b = 3;
change(&a,&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
return 0;
}