BUG总结
小球萝卜干
这个作者很懒,什么都没留下…
展开
-
回溯-记录由scanf导致的数据覆盖问题
简介 在开发的过程中,我们试图通过输入16进制来获取输入的数据,但是在获取完输入的数据后,发现其他数据被莫名其妙的修改了,故做下相应的测试,来查看具体的运行过程。 验证过程 模拟问题场景 以下为验证的代码 #include <stdio.h> void main(void) { unsigned short a; unsigned int b = 0x12345678; printf("b %d\n", b); scanf("%X", &a);原创 2020-05-18 11:42:37 · 715 阅读 · 0 评论 -
回溯-记录运行出错,DEBUG正常的程序
前言 目前正在做TS码流解析的任务,在测试的过程中,发现有的码流运行正常,有的码流运行会出错,那么很大概率上是由于自己写的程序不够完善导致的,此程序一定存在BUG。发现BUG后,习惯性的使用DEBUG进行调试,但是奇怪的是DEBUG运行却是正常的,这让我很纳闷,貌似不能通过DEBUG找出问题的地方,因为它运行正常。这种情况下,要么你就看代码,看出问题所在,要么就通过打印信息,找出问题出在了那里。 后果 输入-1,运行出错 使用GDB,进入后敲r,然后回车,同样也是输入-1 结果程序正常结束了,郁闷中…原创 2020-05-15 19:54:50 · 323 阅读 · 0 评论 -
回溯-记录由数组越界产生的BUG
前言 目前正在做TS码流内容的解析,分别解析完了PAT、PMT、SDT、EIT,接下来要将它们的内容整合起来,并且按照要求输入一个存在program number,然后把对应的内容输出到一个文件中,并且能够使用播放器播放。在使用之初,并无多大问题,但是偶然输入了几个异常值,程序突然崩溃了,在进行一番检查之后,定位到是由数组越界导致修改指针的值,从而导致访问到不该访问的地址。下面来记录详细的步骤。 后果 程序运行界面 在输入28106之后,不管输入什么值,都是出现下面的情况 前因 1 进入调试过程,运行一原创 2020-05-12 11:06:29 · 263 阅读 · 0 评论