Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480873
  • 博文数量: 98
  • 博客积分: 3265
  • 博客等级: 中校
  • 技术积分: 1227
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 00:29
文章分类

全部博文(98)

文章存档

2012年(6)

2011年(83)

2010年(9)

分类: 嵌入式

2011-10-03 14:01:24

Gcc常用参数:

-e

只进行预处理

-S

只编译,生成汇编代码

-c

只编译不链接,生成目标文件.o

-static

链接静态库

-g

包含调试信息,可以使用gdb调试

-g选项的作用是在可执行文件中加入源代码的信息,比如可执行文件中第几条机器指令对应源代码的第几行,但并不是把整个源文件嵌入到可执行文件中,所以在调试时必须保证gdb能找到源文件

 

 

 

Gdb调试:

List(l)

从第一行列出源代码,一次10行,回车继续列出

 

List 函数名

列出该函数的源代码

 

List 行号

列出从行号开始的代码

 

Quit

退出gdb

 

Start

开始执行程序,停在main函数的第一条语句处;gdb列出的这条代码是即将执行的下一条语句

 

Next(n)

一条一条的执行代码

 

Step(s)

跳进函数去跟踪代码

 

Backtrace(bt)

查看函数调用的栈帧

 

Info(i) locals

查看函数局部变量值

 

查看main函数的局部变量值:

Frame(f) 1        //选择1号栈帧查看,使用bt可以查看出main函数所使用的栈帧号

Info locals

 

Print(p) 变量名

打印出变量的值

 

Finish

运行到当前函数返回为止

 

改变变量的值

Set var 变量名=

或者

Print(p) 变量名=

 

Display 变量名

每次停下来都显示该变量的值

 

Undisplay 变量名

取消跟踪显示

 

Break(b) 行号

在该行处设置断点

 

Break 函数名

在某个函数开头设置断点

 

Continue(c)

程序到达断点处停下来

 

Info(i) breakpoints

查看已经设置的断点

 

Delete breakpoints 断点编号

删除指定编号的断点

 

设置断点在满足某个条件时才激活

Break 行号 if 表达式

Break 9 if sum != 0

 

Run(r)

重新从函数开头连续运行

 

Watch 数组元素

设置观察点,例如watch shuzu[5]

 

Info(i) watchpoints

查看当前设置的观察点

 

X

x/7b shuzu    查看数组名为shuzu开头的7个字节单元的内容

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

上一篇:Linux系统编程

下一篇:Linux信号

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