一、什么是core
1、当程序异常终止或崩溃(出现内存越界)时,操作系统会中止你的进程,并将进程此时的内存中的内容拷贝到磁盘的指定目录下存储,生成一个core文件(是一个内存映像,同时加上调试信息),它记录了程序挂掉时详细的状态描述,以方便编程人员调试。
2、bug和操作系统或硬件的保护机制都会导致程序异常终止。程序最基本的运作基础就是二进位,逻辑判断也只有是与否,所以在写程序时一定要明确的区分各种数据的状态并做对应处置。如果程序员在设计算法时考虑欠佳,没有对可能遇到的异常状态做处理的话,程序运行到了一个自身无法处理的异常状态时,应用程序只能选择强制退出,才能终止这种异常状态,如常见的空指针、数组访问越界等。
二、什么是bug
1、在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。bug可以使电脑系统或应用程序崩溃、容易被施诈者攻击。
2、软件出现bug的原因:对各种流程分支考虑不全面;对边界情况的处理不到位;编码时的手误。
3、更广义的bug(defect):和预期不一致(unexpected)的软件行为,如不符合确认过的需求;和用户的交互习惯不一致;与用户的界面审美不一致等等。
三、调试bug
1、调试,简单说就是借助一些开发工具帮助定位问题。
2、程序开发时都有一些开发环境,同时也会配有调试工具,最常见的调试方法就是断点,程序代码实现的功能虽然千差万别,但是归根结底就是一堆变量在那算来算去,传来传去。如果有BUG,那就说明有变量的计算或传递不符合预期,调试时使用断点就能让程序运行到指定的位置时停下来,冻结现场,这时程序员就能够查看此时的各种变量具体是什么,是按照怎样的逻辑传递到这里的。通过观察复现路径,程序员初步判断BUG可能出现的地点,然后在自己怀疑的地方打上断点,静态观察分析,进一步缩小怀疑范围,然后再次断点分析,直至最终找到BUG藏身之处。
——部分内容整理自网络——
网友评论