Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297883
  • 博文数量: 71
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 672
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-05 18:50
个人简介

为了生活努力奋斗

文章分类

全部博文(71)

文章存档

2013年(2)

2010年(1)

2009年(9)

2008年(2)

2007年(57)

我的朋友

分类: LINUX

2007-05-13 22:49:39

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命令退出。

阅读(1884) | 评论(0) | 转发(0) |
0

上一篇:C语言之延时

下一篇:走进嵌入式的世界

给主人留下些什么吧!~~