前言:
本文主要在于对学习内容总结备份、方便日后查询。个人学习后的操作总结,都是可行的,如有不足,欢迎改正;此外,本文内容有来自网络、书籍、手册,本人思考总结。如若侵权之处望告知,一定删帖致歉。
主要环境
ubuntu虚拟机
GNU gdb (Ubuntu 11.1-0ubuntu2) 11.1
人非圣贤,孰能无过,尤其是遇到一些比较细的问题,让机器帮忙调试,又能够一睹其运行过程。
#include <stdio.h>
int main(void)
{
int i = -1;
int a,b;
if(a = 0)
{
printf("num = %d\n", a);
}
else if( b = 1)
{
printf("num = %d\n",b);
}
else
{
printf("num = %d\n",i);
}
return 0;
}
这段代码,如果不仔细看,很容易跳坑,比较笔试时就遇到这个题,算是整不会了,读者可以先自行做一遍。
结果为1,你作对了吗,接下来我们使用GDB一睹究竟
gcc -g -Wall test01.c -o test01.exe
先gdb file test01.exe or gdb test01.exe
(gdb)break main
(gdb)run //运行到断点处
(gdb)step //单步运行
先打个断点:
参考应用:
GDB调试器原来那么简单