使用GDB进行调试
2012-07-19 00:04
309 查看
使用GDB调试C程序
GDB是GNU开源组织发布的一个非图形化的Unix下的程序调试软件。
它能使用户在程序运行时观察数据的内部结构和内存使用情况。
GDB提供的主要功能:
1)监视程序中的变量值
2)设置断点,使程序在指定代码行停止。
3)单步执行
4)动态改变程序的执行环境
等
一、调试一个简单的程序
1、编写主程序test.c
2、编译程序为可执行文件test
$ gcc test.c -g -o test
为了使用GDB进行调试,必须加上-g选项,这样可以使程序在编译时包含调试信息。
3、载入test可执行文件,启动GDB调试
$ gdb test
看到上面类似效果,说明GDB成功载入了test可执行文件
4、现在,可以对程序进行一系列的调试了
调试时,常用的命令有:
file:装载要调试的可执行文件
kill:终止正在调试的程序
list:列出源码
run:执行程序
break:设置断点
watch:动态观察某个变量
next:执行下一行
quit:退出GDB
make:不退出GDB,而重新生成可执行文件
call name(args):调用并执行name,参数为args的函数
return value:停止当前函数,并返回设定的value给调用者
a、列出源码
(gdb) list
b、执行程序
(gdb) run
c、设置断点,并重新执行可执行文件
(gdb) break 6
(gdb) run
可以看到,程序在第6行被挂起了
d、单步执行
(gdb) n
(gdb) n
(gdb) n
(gdb) n
(gdb) n
(gdb) n
可以看到,程序在6-8行之间重复执行
e、监控变量i
(gdb) watch i
(gdb) n
Hardware watchpoint 2:i,表示这是第二个监控点,变量为i
Old value、New value能让你看到变量的变化情况
f、输出变量的值
(gdb) print i
$2,表示第二个监控变量,此处表示变量i,当前值为3
更多关于GDB,可以参看百度百科 http://baike.baidu.com/view/639266.htm
GDB是GNU开源组织发布的一个非图形化的Unix下的程序调试软件。
它能使用户在程序运行时观察数据的内部结构和内存使用情况。
GDB提供的主要功能:
1)监视程序中的变量值
2)设置断点,使程序在指定代码行停止。
3)单步执行
4)动态改变程序的执行环境
等
一、调试一个简单的程序
1、编写主程序test.c
#include <stdio.h> int main(int argc, char *argv[]) { int i=0; for(i; i<10; i++) { printf("%d\n", i); } return 0; }
2、编译程序为可执行文件test
$ gcc test.c -g -o test
为了使用GDB进行调试,必须加上-g选项,这样可以使程序在编译时包含调试信息。
3、载入test可执行文件,启动GDB调试
$ gdb test
看到上面类似效果,说明GDB成功载入了test可执行文件
4、现在,可以对程序进行一系列的调试了
调试时,常用的命令有:
file:装载要调试的可执行文件
kill:终止正在调试的程序
list:列出源码
run:执行程序
break:设置断点
watch:动态观察某个变量
next:执行下一行
quit:退出GDB
make:不退出GDB,而重新生成可执行文件
call name(args):调用并执行name,参数为args的函数
return value:停止当前函数,并返回设定的value给调用者
a、列出源码
(gdb) list
b、执行程序
(gdb) run
c、设置断点,并重新执行可执行文件
(gdb) break 6
(gdb) run
可以看到,程序在第6行被挂起了
d、单步执行
(gdb) n
(gdb) n
(gdb) n
(gdb) n
(gdb) n
(gdb) n
可以看到,程序在6-8行之间重复执行
e、监控变量i
(gdb) watch i
(gdb) n
Hardware watchpoint 2:i,表示这是第二个监控点,变量为i
Old value、New value能让你看到变量的变化情况
f、输出变量的值
(gdb) print i
$2,表示第二个监控变量,此处表示变量i,当前值为3
更多关于GDB,可以参看百度百科 http://baike.baidu.com/view/639266.htm
相关文章推荐
- 使用GDB进行调试
- 使用gdb、gdbserver在ARM-Linux下进行远程调试
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
- 使用gdb对core dump问题进行调试
- db的简单使用和gdb+gdbserver方式进行ARM程序调试
- 使用 gdb 对程序进行汇编级调试
- GDB 进行调试 使用心得
- 使用gdb在Android Emulator中进行调试
- 使用GDB在ARM上进行开发调试
- 使用Bochs和GDB对内核进行源代码级调试
- 使用GDB在ARM上进行开发调试
- 如何使用Eclipse和GDB对JNI代码进行调试(JAVA和C)
- 使用eclipse+gdb进行arm板嵌入式linux远程调试的配置方法
- 使用gdb进行调试
- Android中使用arm-eabi-gdb和vim进行调试
- 使用gdb在Android Emulator中进行调试
- gdb的简单使用和gdb+gdbserver方式进行ARM程序调试
- 使用GDB在ARM上进行开发调试
- Linux下使用gdb进行单步调试(一)
- (转载)GDB 进行调试 使用心得