用过VOTtoolkit的都知道,它是没有办法在运行时进行断点调试的,运行出错会直接退出,并且不会提示任何与程序相关的出错信息,因此今天在这里分享一下我平时调试用的方法。
实际上VOTtoolkit在运行时会生成log信息,并保存在vot-workspace/logs/tracer-name/目录下,log的名字通常是时间信息,例如20190322T085119.log和20190322T085119_runtime.log,意思是2019年03月22日08时51分19秒,两者没太大区别,前者会多一个每帧VOT自己生成的信息。而程序中的打印信息也可以在这个log中体现,我们正是利用这个方法进行调试。
调试方法就是很简单的打印法,通过在程序中添加打印信息(在MATLAB中代码不加分号就会打印出来)来确定出错代码的位置,然后再打印相关变量的信息来确定问题所在,最后就是对症下药解决问题。
举个例子:
一段加打印的代码,来自ECO
% Read image
if seq.frame > 0
[seq, im] = get_sequence_frame(seq);
if isempty(im)
break;
end
if size(im,3) > 1 && is_color_image == false
im = im(:,:,1);
end
else
seq.frame