2020-11-16

                                                                   入门技--调试
                                                                   1.链接错误:

通常提示在XXX.obj中找不到符号,或者FUNC@XYZ已经在XXX.obj中定义,符号重定义等
在这里插入图片描述

数字标注①:本次编译不成功是由6个LINK error引起
数字标注②:error LNK1234,此次错误是由链接错误引起,发生错误的
LNK1234中的1234指的是链接错误号
地方在XXX.cpp(或者XXX.c)所产生的XXX.obj文件中(每个CPP或者C 文件都对应一个同名的obj文件)
数字标注③:出现错误的相关信息,一般情况下信息中包含函数名称,可以找到对应文件的对应函数调用处查看具体原因

找不到符号的一般原因是没有包含对应的lib文件.在默认工程中,VS一般会包括一些必须的和常用的lib文件,此类错误一般不会发生,一般发生在自己写的代码中.若发生此类错误,则首先应检查自己的代码是否包含了调用函数对应的头文件,头文件相应的CPP文件是否有具体的函数代码

解决了编译链接期间的错误,正式进入源码调试阶段

首先,介绍几个名词:
断点(Break Point):期望在某个时刻,程序可以在执行某条语句之前停下来,此时某条语句就是期望中断的地方,即断点,在VS在本条语句上按F9,可快速下断点
条件断点(Condition Break Point):在代码执行之前,期望在变量的值为特定值,或者某个表达式满足一定条件时中断.在VS中先下断点,然后鼠标移动到代码编辑器左边的红色圆点上,编辑条件
函数断点(Function Break Point): 在任意位置执行到指定函数时中断.
VS中快捷键是按Ctrl+B
单步(Single Step):在代码中断下来以后,逐条代码逐条代码的执行.
步入(Step Into):遇到函数调用的时候,执行到函数里边.
VS中快捷键是F11
步过(Step Over):遇到函数调用的时候,自动执行完函数代码,然后中断在函数的下一行代码上.VS中快捷键是F10
步出(Step Out):在函数中单步调试时想跳出该函数,直接执行到该函数返回.
VS中快捷键是Shift+F11
调试符号(Debug Symbol):自己的程序或者系统库文件或者第三方库文件中有关函数(参数,返回值),公开的一些结构体信息等等一系列包含具体信息方便调试的信息,保存这些信息的文件通常为 可执行文件名.pdb (program database)

接下来我们就以实例来演示一下上边的几个名词到底是什么意思
代码如下:
其中由于要在一屏的截图中放下代码,所以很多地方都写成一行了,在实际的编码中不要这么写,不要给自己挖坑.

总共有三个函数,main,test,func
一个全局数组arr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值