2015-07-12 67 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網站上提交一個文件,如果你想跟蹤這個問題的解決方案,我會把它複製到它。