gdb基本用法.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gdb基本用法

GDB的使用 当程序出错并产生core 时 快速定位出错函数的办法 gdb 程序名 core文件名(一般是core,也可能是core.xxxx) 调试程序使用的键 r run 运行.程序还没有运行前使用 c cuntinue 继续运行。运行中断后继续运行 q 退出 kill 终止调试的程序 h help 帮助 tab 命令补全功能 step 跟入函数 next 不跟入函数 b breakpoint 设置断点。 用法: b 函数名 对此函数进行中断 b 文件名:行号 对此文件中指定行中断.如果是当前文件,那么文件名与:号可以 省略 看当前断点数使用info break.禁止断点disable 断点号.删除delete 断点号. l list 列出代码行。一次列10 行。连接使用list将会滚动显示. 也可以在list 后面 跟上 文件名:行号 watch 观察一个变量的值。每次中断时都会显示这个变量的值 p print 打印一个变量的值。与watch不同的是print只显示一次 这里在顺便说说如何改变一个 value. 当你下指令 p 的时候,例如你用 p b, 这时候你会看到 b 的 value, 也就是上面的 $1 = 15. 你也同样可以用 p 来改变一个 value, 例如下指令 p b = 100 试试看, 这时候你会发现, b 的 value 就变成 100 了:$1 = 100. 网上抄录 基本的使用方法简介 前言 程序代码中的错误可分为数类,除了最容易除错的语法错误,编译程序会告诉你错误所在外,大部分的错误都可以归类为执行时错误。GDB 的功能便是寻找执行时错误。如果没有除错程序,我们只能在程序中加入输出变量值的指令来了解程序执行的状态。有了 GDB 除错程序,我们可以设定在任何地方停止程序的执行,然后可以随意检视变量值及更动变量,并逐行执行程序。 一个除错程序执行的流程通常是这样的: 1. 进入除错程序并指定可执行文件。 2. 指定程序代码所在目录。 3. 设定断点后执行程序。 4. 程序于断点中断后,可以 (1)检视程序执行状态;检视变量值或变更变量值 (2) 逐步执行程序,或是全速执行程序到下一个断点或是到程序结束为止。 5. 离开除错程序。 以下将分为下列数项分别介绍: 1. 进入 GDB 及指定可执行档 2. 指定程序代码所在目录及检视程序代码 3. 断点的设定与清除 4. 全速及逐步执行程序 5. 检视及更改变量值 6. 检视程序执行状态 7. 读取 Core 文件信息 进入 GDB 及指定可执行档: 1. 进入 GDB 并读入可执行档 (档名为 PROGRAM),准备进行除错。 gdb PROGRAM 指定程序代码所在目录及检视程序代码 1. 增加目录 DIR 到收寻程序代码的目录列表 (如果你的程序代码和可执行档放在同一个目录下,就不须指定程序代码所在目录。): (gdb) directory DIR 2. 检视程序代码,格式计有: (gdb) list = 显示目前执行程序代码前后各五行的程序代码;或是显示从上次 list 之后的程序代码 (gdb) list function = 显示该程序开始处前后五行的程序代码。 (gdb) list - =上次显示程序代码的前面的十行。 断点的设定与清除 1. 设定断点(指令为 break,可简写为 (b),格式计有: (gdb) break filename.c:30 = 在 filename.c 的第三十行处停止执行。 (gdb) break function = 在进入 function 时中断程序的执行。 (gdb) break filename.c:function = 在程序代码档 filename.c 中的函数 function 处设定断点。 (gdb) break = 在下一个将被执行的命令设定断点。 (gdb) break ... if cond = 只有当 cond 成立的时候才中断。cond 须以 C 语言的语法写成。 2. 显示各个断点的信息。 (gdb) info break 3. 清除断点(命令为 clear),格式同 break 。例如 : (gdb) clear filename.c:30 4. 清除断点,NUM 是在 info break 显示出来的断点编号。 (gdb) delete NUM 全速及逐步执行程序 1. 从程序开头全速执行程序,直到遇到断点或是程序执行完毕为止。 (gdb) run 2. 在程序被中断后,全速执行程序到下一个断点或是程序结束为止 (continue 指令可简写为 c)。 (gdb) continue 3. 执行一行程序. 若呼叫函数, 则将该包含该函数程序代码视

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档