- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本要义.PDF
基本要义
不积跬步,无以至千里。不积小流,无以成江海。
一.调试
调试是编码最基本不过的东西了,在这里,我以一个简单的程序为例,稍微来讲解一下
dev-c++中调试的基本技巧。
我的代码如下,非常简单的一个交换值的程序:
#include iostream
using namespace std;
void exchange(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int a = 1;
int b = 2;
exchange(a, b);
cout a = a b = b endl;
return 0;
}
1.断点
所谓断点,指的就是在你debug 的时候,程序运行到你的断点处,会暂时停下来,不
会继续运行。在你的代码中,如果你怀疑你的代码哪里可能出错了,你就可以在那里设置断
点。
-1-
2.watch
debug 的话自然是少不了查看变量的值的工具,下面是一个例子,当我真正开始debug
的时候,程序在断点处,也就是蓝色箭头指示的 15行处,暂时停止运行,此时,如果我想
查看变量a 的值的话,我就要对变量添加watch 了,如下图所示。
添加完成后,就可以在左边的框中查看变量的值了。
值得一提的是,变量的值会随之程序的运行发生变化。
3.单步执行与单步进入
如果我想仔细查看端点处代码究竟干了一些什么事情,那么debug 的另一个基本的命
令单步执行我们就必须要知晓了。
这是单步执行之前的状态:
-2-
单步执行之后的状态,b 的值发生了变化,指示将要运行的代码的蓝色箭头往下移动了
一步 (这就是所谓的单步)。
与单步执行非常近似的一个概念叫做单步进入,在没有函数调用的时候,单步执行和单
步进入没有什么区别,但是有函数调用的时候区别就来了。
上面的exchange 是一个函数调用。我们就以此为例,看看两者的区别:
单步调试将函数调用看做一条语句,直接跳过,而单步进入会进入函数的内部:
-3-
相信你已经掌握了两者的用法了。
4.继续执行
另外一个比较重要的调试命令是上面图中的Continue,这个命令很简单,它代表继续
执行,一直到碰到下一个断点,当然,如果没有断点的话,会直接执行完整个程序。
掌握了上面的几个调试技巧,个人觉得差不多了。
5.Evaluate
这个不算命令啦,顶多算是一个小插曲而已。
看到上面的Evaluate 没有,这里可以显示变量的值。在比如说*a:
-4-
其实在Send command to GDB 那里可以输入调试的命令,可是并不推荐,如果感兴
趣,我写过一篇linux 下gdb 调试的总结的文章,当做附录送给你好了。
好了,总结一下吧,程序输出结果不对是经常有的事情,所以程序员大部分的时间里都
在调试,调试的时候,最好拿出一页纸,将你预想的结果和程序实际运行的结果对比一下,
这样你就能很快找到bug 所在的地方。Good luck!
二.常用函数
我并不会讲很多的函数,其余的函数大家可以去查api,这里只会讲一些平时用得特别
多的一些函数的用法。
1.常用的字符函数
strcpy 用于复制字符串
include string.h
char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
用源地址处(src)取出字符串复制到目的地址处(dest),strcpy 函数要求你自己保
证dest 处有足够的空间。而strncpy 多出的一个参数n 用于指示dest 处最大的可用空
间的数目 (单位是字节)。如果src 的字符数多余n 的话,不会全部
您可能关注的文档
最近下载
- 以史为纬,以地为经:历史地理学知识在中学历史教学中的深度融合与应用.docx
- GB_T12241-2021安全阀一般要求(高清版).DOCX VIP
- 消防检测技术服务方案.docx VIP
- 《人体血液中6种免疫抑制类药物含量的测定 高效液相色谱-串联质谱法》.pdf VIP
- 2024海淀高三二模“勇闯无人区”和“轻舟已过万重山”标杆文(4)(3).docx VIP
- 跨学科视域下初中人工智能课程教学的实施.pdf VIP
- 《小交通量农村公路工程技术标准》(JTG 2111-2019).pdf VIP
- zabbix监控方案规划.pptx VIP
- ISTA-6-AMAZON---亚马逊测试标准(快递包裹运输).docx VIP
- 七年级数学上册近似数课件.pptx VIP
文档评论(0)