码迷,mamicode.com
首页 > 数据库 > 详细

用GDB调试程序

时间:2015-01-23 13:31:47      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

1、模拟step into,使用step(s)。进入函数体内。

2、模拟step over,使用next(n)。不进入函数体内。

3、模拟step out,使用finish。退出当前函数体。

4、模拟退出循环,使用until(u)。退出当前循环体。

5、模拟下断点,break(b)  function或者linenum或者filename:linenum或者filename:function。

6、模拟删除断点,delete break + 断点号。

7、模拟查看当前断点,info break,能够看到断点号。

8、模拟运行,run(r)。程序刚开始执行时使用。

9、模拟继续运行,continue(c)。继续运行直到下一个断点。

10、打印变量或者表达式

       (1)、print(p) + 变量或者表达式。

       (2)、print(p) + 格式 + 变量或者表达式。

       (3)、如果全局变量和局部变量重复,查看全局变量,使用文件名:全局变量。

       如果是静态数组,直接打印数组名字,就能看到数组中的元素。

       int *array = (int *) malloc (len * sizeof (int));

       如果是动态数组,p *array@len。

11、查看内存

       x/<n/f/u> + 内存地址。

12、自动显示

       (1)、display + 变量或者表达式。

       (2)、display/fmt + 变量或者表达式。

       (3)、display + 内存地址。

       (4)、info display ,查看所有自动显示。

       (5)、delete display + 自动显示号。

13、查看源代码在内存中的地址,info line “行号”,“函数名”,“文件名:行号”,“文件名:函数名”。disassemble + “函数名”或者“文件名:函数名”,反汇编函数。

14、查看所有寄存器的信息,info all-registers。

15、列出当前代码,list(l)。

16、列出当前调用堆栈,backtrace(bt)。

17、set print pretty <on/off> 如果打开printf pretty这个选项,那么当GDB显示结构体时会比较漂亮。

18、print union <on/off> 设置显示结构体时,是否显式其内的联合体数据。

用GDB调试程序

标签:

原文地址:http://blog.csdn.net/jltxgcy/article/details/43052991

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!