Visual Studio调试技巧

参考自博客:

Visual Studio 调试小技巧(1)-根据字符串内容添加断点

https://blog.csdn.net/cadcisdhht/article/details/5649681

Visual Studio 调试小技巧(2)-从查看窗口得到更多信息

https://blog.csdn.net/cadcisdhht/article/details/5651488


 

具体以上面的参考博客为标准,我只是加上了我自己的理解,以及,我自己编程时候关于opencv特征点的使用范围

文章1中说到

Visual Studio中的添加断点功能中支持的字符串函数有:strlen, wcslen, strnlen, wcsnlen, strcmp, wcscmp, _stricmp, _wcsicmp, strncmp, wcsncmp, _strnicmp, _wcsnicmp, strchr, wcschr, strstr, wcsstr.
现在我们进行尝试:

使用方法是:

这里是我们想要打断点的地方,手动打上断电,或者在这一行的时候按下F9

然后右键红色断点

选择条件:

加上条件:

==运算符比较的是两个字符串的地址而不是内容

字符串中断,作者解释了,需要这么用:

 

当前我最关心的是第二篇文章

显示数组的内容

这个可以用在我们特征点信息的显示

特征点信息虽然用局部变量也能看清楚,但是对于动态分配的就不行了

但是未来我们编程的时候,会遇到,动态分类特征点数组 ,那时候就需要文章2的查看方法了

在监视中输入要看到的数组,然后加上 ,size  即 加上逗号和数组大小

我们测试动态特征点数组:

 

pia2显示显示的首地址,即数组中第一个元素的信息,但是无法全部显示

如果像全部显示,就用刚刚的方法,使用监视

还有关于opencv错误代码的解析

此时还没有运行读取函数,然后我们点击继续,让断点往下走

 

这时候程序还没奔溃,但是通过这种方法,已经找到了错误源,此时如果再点继续,程序才会奔溃,

使用这种方法,我们可以很清晰发现,错误的原因是什么

我举得例子比较简单,因为我们平时写代码会像下面这样,

Mat output2;
Mat X1 = imread("没有存在的图片.png", 1);
if(X1.empty())
{
   //####操作处理
}
drawKeypoints(X1, keypoints2, output2);

但是这个方法是非常值得学习得

$ERR,hr

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值