GDB 基本用法】的更多相关文章

目录 一.gdb功能简介 二.gdb使用前置条件:编译时加入debug信息. 三.gdb最常见的几个用法: 1.gdb的启动,加载程序: 2.调试正在运行的程序: 3. 查core: 四.gdb常用命令: 五.程序中断机制:监视点(watchpoint).断点(breakpoint)和捕捉点(catchpoint): 1. 监视点. 2. 断点 六,调试core文件 1, 造成segment fault,产生core dump的可能原因 2, 配置操作系统使其产生core文件 3,调试core…
基本命令 进入GDB:#gdb test test是要调试的程序,由gcc test.c -g -o test生成.进入后提示符变为(gdb) . 查看源码:(gdb) l 源码会进行行号提示. 如果需要查看在其他文件中定义的函数,在l后加上函数名即可定位到这个函数的定义及查看附近的其他源码.或者:使用断点或单步运行,到某个函数处使用s进入这个函数. 设置断点:(gdb) b 6 这样会在运行到源码第6行时停止,可以查看变量的值.堆栈情况等:这个行号是gdb的行号. 查看断点处情况:(gdb)…
http://blog.csdn.net/wwwsq/article/details/7086151…
1.编译文件时需要加上 -g 选项,并非是将源码嵌入可执行文件,只是加入源代码的信息.eg:gcc -g main.c -o main 2.直接按回车键会重复上一条命令 3.基本指令 help,可以查看某一具体组的help信息,比如help files list(l) [符号名或者行数] 列出源文件内容 quit(q) next(n) 单步执行 step(s) 跟踪执行 finish 结束跟踪执行 backtrace(bt) 查看函数调用栈帧 info(i) 查看信息,eg:i locals f…
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式. 当程序被停住时,可以检查此时程序中所发生的事,并追索上文. 动态地改变程序的执行环境. 不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须.而且,调试内核和调试应用程序时使用的gdb命令是完全相同的,下面以代码清单22.2的应用程…
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序. 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式. 当程序被停住时,可以检查此时程序中所发生的事,并追索上文. 动态地改变程序的执行环境. 不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须.而且,调试内核和调试应用程序时使用的gdb命令是完全相同的,下面以代码清单22.2的应用程…
暂停机制: 有3种方式可以通知GDB暂停程序的执行. a.断点: 通知GDB在程序中的特定位置暂停执行: b.监视点:通知GDB当特定内存位置(或者涉及一个或多个位置的表达式)的值发生变化时暂停执行: c.捕获点: 通知GDB当特定事件发生时暂停执行: 容易混淆的是,在GDB文档中将这3个机制都称为断点.这可能是因为它们的很多属性和命令都相同: GDB关于删除断点的delete命令:删除断点.监视点和捕获点: GDB中关于“位置”的含义非常灵活,它可以指各种源代码行.代码地址.源代码文件中的行号…
1.若干命令速查 file <文件名>:加载被调试的可执行程序文件.因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径.示例:(gdb) file gdb-sample r:Run的简写,运行被调试的程序,也是重启程序运行.如果此前没有下过断点,则执行完整个程序:如果有断点,则程序暂停在第一个可用断点处. c:Continue的简写,继续执行被调试程序,直至下一个断点或程序结束. b <行号>:   b <函数名称>/   b *<函数名称>…
程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码中适当的位置插入 printf ,执行程序并分析打印结果,如果结果和预期的一样,就基本上证明了自己假设的错误原因,就可以动手修Bug了,如果结果和预期的不一样,就根据结果做进一步的假设和分析. 本章我们介绍一种很强大的调试工具 gdb ,可以完全操控程序的运行,使得程序就像你手里的玩具一样,叫它走就走,叫它停就停,并且随时可以查看程序中所有的内部状…
directory:添加源文件目录 l src.cpp:line_num可进入文件 如:l src.cpp:10 回车自动重复上一命令 一.gdb调试基本知识a.调试器指示的是将要执行的代码行b.只有在编译时拥有调试符号(-g)的程序才能在调试时看到源码c.同一行上有多个断点时,gdb仅中断在断点号最小的那个断点上d.断点可以设置在同一程序的不同文件中e.在任何给定时间,gdb只有一个焦点,即当前“活动”的文件f.源文件改变后,断点发生移动,带式断点属性的行号不变二.GDB基本命令清单查询在 g…