在了解GDB能够做什么,怎么做之前,让我们先来看看为什么要用GDB,或说对调试工具备什么期望。
一般我们使用GDB(或其他调试工具)是为了发现程式bug,更经常地是在已知程式有错的情况下定位bug。既然这样,我们就需要跟踪程式的执行情况,查看程式执行是否正常,当然这就需要有个让我们和执行程式交互的环境,调试工具提供一个能让程式在您的掌控下执行,并让您能够查看一些执行过程中的“内幕信息”的环境。
为了查看程式运行过程中的状态,我们就希望程式能在适当的位置或在一定的条件下能够暂停运行;为此,调试工具提供了断点、查看变量/表达式、显示程式栈等功能。看了某个点的“内幕”后,我们还期望更多,所以要能控制程式运行才行,这就需要断点、继续运行、单步(多步)运行、进入函数运行等功能,在某些情况下,还需要通过修改当前的执行环境(变量等)来达到期望的执行顺序。也就是说,光看着是不够的,还需要能改才行。
| 一、引言 | |
在了解GDB能够做什么,怎么做之前,让我们先来看看为什么要用GDB,或说对调试工具备什么期望。 一般我们使用GDB(或其他调试工具)是为了发现程式bug,更经常地是在已知程式有错的情况下定位bug。既然这样,我们就需要跟踪程式的执行情况,查看程式执行是否正常,当然这就需要有个让我们和执行程式交互的环境,调试工具提供一个能让程式在您的掌控下执行,并让您能够查看一些执行过程中的“内幕信息”的环境。 为了查看程式运行过程中的状态,我们就希望程式能在适当的位置或在一定的条件下能够暂停运行;为此,调试工具提供了断点、查看变量/表达式、显示程式栈等功能。看了某个点的“内幕”后,我们还期望更多,所以要能控制程式运行才行,这就需要断点、继续运行、单步(多步)运行、进入函数运行等功能,在某些情况下,还需要通过修改当前的执行环境(变量等)来达到期望的执行顺序。也就是说,光看着是不够的,还需要能改才行。 理解了这些问题后,我们就明白GDB的各个功能的用意了,自然也就明白该如何使用调试工具了。当然,要让GDB有效的发挥作用,还是需要一定的经验和技巧,而这主要靠实践,学习资料(包括本文)充其量只能帮您一把(小心别让他帮倒忙)。 总而言之,我们首先要明白使用调试工具的目的和用意,才能理解他的各项功能,才能借助他快速有效的发现问题;否则,即使工具再强大,您也不知道该如何使用才好。 另外要多结合使用代码检视、运行日志、测试工具等方法来发现潜在的问题,提供程式的质量。这些问题将在另文探讨,先做个广告。 | |
| 二、GDB能做什么 | |
GDB能够用来调试C、C 、Modula-2的程式。一般来说,GDB能做的事大致能够分为四类: 1、启动程式,按指定的方式执行程式。 | |
| 三、GDB使用概述 | |
首先要了解的是gdb的help命令,因为您可能记不住各个命令的语法和用途,但只要能正确使用help命令,您就无需任何其他的gdb资料。 启动gdb后,输入help [eric@linux eric]$ gdb aliases -- Aliases of other commands Type "help" followed by a class name for a list of commands in that class.
为调试编译代码 为了使 gdb 正常工作, 您必须使您的程式在编译时包含调试信息. 调试信息包含您程式里的每个变量的类型和在可执行文档里的地址映射连同源代码的行号. gdb 利用这些信息使源代码和机器码相关联.
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |




