Chinaunix首页 | 论坛 | 博客

Art

  • 博客访问: 48409
  • 博文数量: 39
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 17:10
文章分类

全部博文(39)

文章存档

2010年(1)

2009年(14)

2008年(24)

我的朋友
最近访客

分类: LINUX

2008-12-12 15:26:20

gcc 的 -g 和 -ggdb 选项
        -g 和 -ggdb 都是令 gcc 生成调试信息,但是它们也是有区别的
        -g
        该选项可以利用操作系统的“原生格式(native format)”生成调试
        信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息
        -ggdb
        使 GCC 为 GDB 生成专用的更为丰富的调试信息,但是,此时就不能用其
        他的调试器来进行调试了 (如 ddx)
        -g 和 -ggdb 也是分级别的
        -g2
        这是默认的级别,此时产生的调试信息包括扩展的符号表、行号、局部
        或外部变量信息。
        -g3
        包含级别2中的所有调试信息,以及源代码中定义的宏
        -g1
        级别1(-g1)不包含局部变量和与行号有关的调试信息,因此只能够用于回溯
        跟踪和堆栈转储之用。回溯跟踪指的是监视程序在运行过程中的函数调用历
        史,堆栈转储则是一种以原始的十六进制格式保存程序执行环境的方法,两者
        都是经常用到的调试手段。
    -static 静态编译
    -o优化编译
gdb
r run 运行.程序还没有运行前使用
c cuntinue 继续运行。运行中断后继续运行
quit 退出
kill 终止调试的程序
b 设置断点
  用法:
  b 函数名 对此函数进行中断
  b 文件名:行号 对此文件中指定行中断.如果是当前文件,那么文件名与:号可以省略
  看当前断点数使用info break.禁止断点disable 断点号.删除delete 断点号.
shell启动shell,Ctrl+D,返回正常模式
i:info
i regs 显示寄存器
x/32uxb 指针 以16进制显示该指针指向的32个字节的数据
x/s 显示该地址的字符串
x/i 显示指令
bt堆栈回溯,frame number,进入堆栈中该层函数调用,frame 0即当前函数

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

上一篇:SHELL

下一篇:Linux下的汇编

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