下载此文档

gdb调试除错专家---程序调试的利器GDB.pdf


文档分类:资格/认证考试 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
gdb调试:除错专家---程序调试的利器GDB
疯狂代码 / ĵ:http:/
ash或tcsh中那样按Tab键补齐命令。如果相关命令不惟一的话
,则列出所有可能的匹配项。此外键盘上的方向键可用来翻动历史命令。

  GDB是一个源代码级的调试器,使用“list”命令可以查看当前调试对象的源代码。该命令的通用格式为
“list [m,n]”,表示显示从m行开始到n行结束的代码段,而不带任何参数的“list”命令将显示最近10行源代
码。

  设置断点
  在调试有问题的代码时,在某一点停止运行往往很管用。这样程序运行到此外时会暂时挂起,等待用户的
进一步输入。GDB允许在几种不同的代码结构上设置断点,包括行号和函数名等,并且还允许设置条件断点
,让程序只有在满足一定的条件时才停止执行。要根据行号设置断点,可以使用“ break linenum”命令。要
根据函数名设置断点,则应该使用“break funcname”命令。

  在以上两种情况中,GDB将在执行指定的行号或进入指定的函数之前停止执行程序。此时可以使用
“print”显示变量的值,或者使用“list”查看将要执行的代码。对于由多个源文件组成的项目,如果想在执行到非当前源文件的某行或某个函数时停止执行,可以使用如下形式的命令:

  # break filename:linenum
  # break filename:funcname

  条件断点允许当一定条件满足时暂时停止程序的执行。它对于调试来讲非常有用。设置条件断点的正确语
法如下:

  break linenum if expr
  break funcname if expr

  其中expr是一个逻辑表达式。当该表达式的值为真时,程序将在该断点处暂时挂起。例如,下面的命令将
在debugme程序的第38行设置一个条件断点。当程序运行到该行时,如果count的值等于3,就将暂时停止执
行:
  (gdb) break 38 if count==3

  设置断点是调试程序时最常用到的一种手段。它可以中断程序的运行,给程序员一个单步跟踪的机会。使
用命令“ break main”在main函数上设置断点可以在程序启动时就开始进行跟踪。

  接下去使用“continue”命令继续执行程序,直到遇到下一个断点。如果在调试时设置了很多断点,可以
随时使用“info breakpoints”命令来查看设置的断点。此外,开发人员还可以使用“delete”命令删除断点
,或者使用“disable”命令来使设置的断点暂时无效。被设置为无效的断点在需要的时候可以用“enable”命
令使其重新生效。

  观察变量
  GDB最有用的特性之一是能够显示被调试程序中几乎任何表达式、变量或数组的类型和值,并且能够用编
写程序所用的语言打印出任何合法表达式的值。查看数据最简单的办法是使用“print”命令,只需在
“print”命令后面加上变量表达式,就

gdb调试除错专家---程序调试的利器GDB 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小181 KB
  • 时间2022-02-23