gdb基础

GDB基础知识:
       GDB的主要功能:

监视程序中变量的值变化
设置断点
单步执行代码
分析崩溃程序产生的core文件
一、用GCC编译时加入调试信息:
       

gcc -ggdb3 -o test test.c
       将test.c生成test可执行文件,其中加入了调试信息。
二、运行程序:
       

若程序崩溃,可生成core文件来分析崩溃原因,生成core的步骤:
1、运行$ulimit -c unlimited
即编译允许使用存储信息
2、再次运行程序,就可以看到生成的core文件。
然后加载程序和core文件到GDB中,就可以分析了,在GDB中可以用(gdb)bt来获得更多的信息。
三、加载程序到GDB中调试:

用命令$gdb filename   filename为程序名。
四、调试中常用的一些命令:
1、设置断点:(gdb)break 表达式   
如: break main  在main()处设置了断点,程序到此暂停。
   还可以在某一行设置断点,break 12  在12行设置了断点。
2、执行程序:命令: run
3、单步执行:run程序后,到断点处停止,用step命令可以单步执行程序。step的快捷命令为s
4、print命令:显示表达示的值,格式为print 表达式。(注:print中命   令print $和print $$分别是显示前一个序号的值和显示前第二个序号    的值。)
   print命令还可以给变量赋值,格式:print 变量=表达式
   还可以打印出内存某个部分开始的一块连续的内容,格式:
   print 开始表达式@要打印的连续内存空间的大小。
5、display命令:用来显示一些表达式的值,特别之处是每一次到断点处都会  显示(注:程序在表达式所在的函数中时),,可以用此命令跟踪一些变量的  变化.
6、next命令:与step的功能相似。在使用step时,在循环中,第一次调用函  数时都会进入,一步一步的执行,这样就显示了很多重复的信息,用next命   令可以防止发生这样的事情,不会进入方法。next的快捷命令为n.
7、用quit命令退出。

你可能感兴趣的:(gdb基础)