VS内存异常如何调试
VS 中使用Opencv库出现了内存异常,卡了很久,记录一下经验。
内存异常:
内存异常不像编译出错那样直接指出错误的地方
异常报错的地方不一定是真实存在问题的地方
我在这里卡了好久,实在找不出我定义一个变量能有什么问题。
断点调试可能还是卡在这一行。
于是我将这一行以及后面的代码进行注释,发现异常报错的代码变了,变成了注释代码的结束的后一行,于是终于找到了问题,是注释代码的前一行出现了问题
调试方法:
- 检查异常报错上一行代码
- 我出现的问题是传入的形参不对
- 按住Ctrl点击函数,自动跳转到函数定义
- 但是实参类型和形参类型不一样的话,一般是编译出错
- 我遇到的问题是,我传入的类型看似是对的,实则需要再按住Ctrl键点击形参的类型,就会跳转到它的定义。
- 于是发现它的形参类型其实是一个返回的量,而我是直接定义的。
下面是我调试的例子
(上面说的也许太抽象了)
-
按住Ctrl点击函数initDelaunay
绿色注释部分是参数的解释,一般在函数上方 -
检查我的实参
真的没什么问题。。。。 -
按住Ctrl点击形参的Rect 类
-
找到了问题
万万没想到这个Rect竟然是boundingRect函数的一个返回类型。。。。 -
修改代码