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

对于没有经验的程序员,性能问题是测出来的;对于有经验的程序员,性能问题是预测出来的。 * Lecturer: xxx Assistant:xx 4st @ 2011-03-22 xxxxx 目录 调试概述 GDB简介 调试演示 课程实践 目录 调试概述 GDB简介 调试演示 课程实践 调试概述 1/2 What is debug? 调试,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程 Why debug? 软件开发的一个很重要的工作是测试程序和排除错误。特别是在一个大程序中,编程错误是不可避免的。程序可能会返回错误的结果,因为无穷循环而死机,甚至因为内存操作不当导致系统崩溃。因此需要通过调试来找到这些错误并消灭它们~ 调试概述 2/2 调试前提 安装GDB软件包 程序参考手册网址: /software/gdb/documention 程序安装网址:/software/gdb/download 编译时加上-g选项 目录 调试概述 GDB简介 调试演示 课程实践 GDB简介 GDB的概述 GDB的使用方法 GDB常用命令 GDB的概述 Gdb是一款GNU开发组织并发布的UNIX/Linux下的程序调试工具。它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是gdb 所提供的一些功能: 它使你能监视你程序中变量的值. 它使你能设置断点以使程序在指定的代码行上停止执行. 它使你能一行行的执行你的代码. GDB的使用方法 GDB的命令格式 gdb [option] [executable-file[core-file or process-id]] GDB的常用命令 1/4 加载和退出命令 gdb filename:在shell下直接加载文件进行调试 file filename:在gdb下通过file命令加载程序进行调试 kill:终止正在调试的程序 quit:退出gdb调试环境 GDB的常用命令 2/4 断点控制 break 函数名或行号[if 条件] Info break :显示程序中设置的断点; delete breakpoint 断点号:删除指定的断点 clear 断点号:作用同上 disable breakpoint 断点号:禁用指定的断点 enable breakpoint 断点号:允许指定的断点 GDB的常用命令 3/4 程序的控制指令 run:程序开始执行,一直运行到断点才终止; continue:运行到下一个断点; next:运行下一条指令; step:运行下一条指令; GDB的常用命令 4/4 变量、参数的设置与查看 ? list:列出产生执行文件的源代码的一部分. ? watch 变量名:当变量改变时,显示变量修改前后的值; ? print 变量名:打印变量值; ? whatis 变量名或函数名:显示变量或函数的类型; ? Ptype:显示数据结构的定义; ? set args:设置程序的运行参数; ? Show args:显示程序的运行参数; 目录 调试概述 GDB简介 调试演示 课程实践 调试演示 char * readString(void) { int nextInChar; int nextLocation; printf(Input ); nextLocation = 0; while ((nextInChar = getchar()) != \n nextInChar != EOF) { Buffer[nextLocation++] = nextInChar; } return Buffer; } 调试演示 #define MAXLINE_LENGTH 80 char Buffer[MAXLINE_LENGTH]; char * readString(void) { int nextInChar; int nextLocation; printf(Input ); nextLocation = 0; while ((nextInChar = getchar()) != \n nextInChar != EOF) { Buffer[nextLocation++] = nextInChar; } return Buffer; } 调试演示 1. 使用gcc命令进行编译(务必需要-g选项) gcc –g –o buffer buffer.c 2. 启动gdb进行调试 gdb buffer 3. 使用run命令运行程序 r (or run) 4. 根据逻辑找出问题,可附加使用l

文档评论(0)

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

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

1亿VIP精品文档

相关文档