GDB的使用(搜集)
2009-05-13 05:00:41来源:未知 阅读 ()
如:
gcc –g main.c
gcc –ggdb main.c
这样,gcc就会在生成可执行文件时产生调试讯息。-g用于产生一般的调试讯息,-ggdb则用于产生GDB特有的调试讯息。
GDB的基本指令:
f(ile):指定一个可执行文件进行调试,gdb将读取些文件的调试讯息,如f a.exe
l(ist):列程序出源文件
r(un) :装载完要调试的可执行文件后,可以用run命令运行可执行文件
b(reak):设置断点(break point),如b 25,则在源程序的第25行设置一个断点,当程序执行到第25行时,就会产生中断;也可以使用b funcname,funcname为函数的名称,当程序调用些函数时,则产生中断
c(ontinue):c命令可以另中断的程序继续执行,直到下一个中断点或程序结束
p(rint):输入某个变量的值,如程序定义了一个int aa的就是,p aa就会输出aa的当前值
n(ext):程序执行到断点时中断执行,可以用n指令进行单步执行
s(tep):程序执行到断点时中断执行,可以用s指令进行单步执行进某一函数
q(uit):退出GDB
记录输出日志
你可能想保存GDB命令的输出到一个文件中去。这里有几个命令来控制GDB的记录功能。
set logging on 打开记录功能。
set logging off 关闭记录功能。
set logging file file 改变当前日志文件的名称。默认的日志文件是`gdb.txt'。
set logging overwrite [on|off]
默认情况下,GDB会添加到日志文件中。如果你set logging on想复盖掉日志文件,
就设置overwrite。
set logging redirect [on|off]
默认情况下,GDB会输出到终端和日志文件。如果你想仅仅输出到日志文件,设置redirect。
show logging
显示日志设置的当前值。
为调试而编译
为了有效地调试一个程序, 你需要在编译时生成调试信息. 调试信息是存储在目标文件中的, 它描述了各个变量和函数的数据类型, 以及源代码行号与可执行代码地址之间的对应关系.
要加入调试信息, 需在运行编译器gcc时加入 ‘-g’选项.
一般,交付给客户的程序是需要优化编译的, 用了 ‘-O’编译器选项. 然而, 许多编译器是无法一起处理‘-g’和‘-O’选项的. 所以用这些编译器时, 不可能生成带有调试信息的优化的可执行文件.
GCC, GNU C/C++ 编译器, 支持带和不带‘-O’ 的‘-g’, 使得调试优化代码成为可能. 我们推荐你始终在编译程序时用‘-g’. 也许你自认为程序是正确无误的,但没有必要打这个赌。
当你调试一个用‘-g -O’编译的程序时, 记住: 优化器重新整理了你的代码, 而调试器给你看的是实际存在的(优化後的代码). 不要太惊讶,
如果实际执行路径并不能精确对应你的源文件. 一个极端的例子是: 如果你定义了一个变量, 但并没有用它, GDB 就不可能看见这个变量,
因为编译器把它优化没了.
有些情况下‘-g -O’并不像‘-g’一样, 特别是在有指令调度的机器上. 如果有疑问, 重新编译, 只使用‘-g’
程序环境
环境由一组环境变量和它们的值组成。环境变量通常记录着这些:你的用户名,你的主目录,你的终端类型,以及你的要运行程序的搜索路径。一般你用
shell 设置环境变量,然後它们会由你运行的其他程序继承。调试时,试着用修改的环境运行你的程序而不需要重新启动 GDB,这是很有用的。
path directory
把 directory 加到将会传给你的程序的 PATH 环境变量(可执行文件的搜索路径)的前面。
show paths
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Linux下ARP绑定
- 讨论一下package和port一起使用的问题。 2009-05-13
- 使用中的Apache2居然无法启动了 2009-05-13
- 拓扑排序程序 2009-05-13
- freebsd下安装软件使用说明 2009-05-13
- nfs配置 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash