2015-07-12 68 views
0

我想观看以下变量的XCode 6:无法创建观察点

vector<Vec3f> lines[2]; 
XCode中

(其中Vec3f是一个数据类型的OpenCV,3个浮点数的向量)。 但在变量视图,当我用鼠标右键单击该变量并选择Watch "lines",我被在通过的XCode喊道:

error: Watchpoint creation failed (addr=0x16fd92d48, size=48, variable expression='lines'). error: watch size of 48 is not supported

这似乎与vector<T>类型的其他变量的情况发生为好,但只有当它是一个局部变量。我可以看到作为方法参数传入的vector就好了。

double computeReprojectionError(vector<Point2f>& imgpts1, vector<Point2f>& imgpts2, Mat& inlier_mask, const Mat& F) 
{ 
               //^I can watch this guy 
    vector<Vec3f> lines[2]; // <- I cannot watch this guy (size 48) 

    vector<Point2f> imgpts1_copy(npt), // <- I cannot watch this guy (size 24) 
    imgpts2_copy(npt); 

... 

我GOOGLE错误没有成功。有人可以阐明此事吗?

回答

2

观察点通常资源相当有限。您没有说明您正在调试的体系结构,但是例如x86_64只有4个硬件监视点寄存器,每个监视器最多可以监视8个字节。所以在任何情况下,您都无法在x86_64上观看48个字节的区域。

但是,您应该可以使用3个8字节手表观看24个字节的区域。我在本地尝试了这种方法,看起来在观察点设置中存在一个错误 - 它不会将大于原始观察点大小的请求分配到几个较小的手表中。所以你必须手动将请求分解成1/2/4/8字节的块。

我提出了一个错误来跟踪这个苹果bug记者。但是如果你想跟踪它,可以随时在Apple的http://bugreporter.apple.com网站上提交一个文件,如果你想跟踪这个问题的解决方案,我会把它复制到它。