3
我目前正在努力調試下面的代碼部分。我使用VS2015社區版在Windows 10C++ VS調試器轉移行爲?
[(BR)]是一個斷點
以下是我的代碼(瘦身)版本。我基本上已經嵌套循環,從所有gameObjects中提取所有點(X & Y座標)。
正如你所看到的,我設置了兩個斷點。
我打了調試按鈕,它停在第一個斷點 - 成功。重要的局部變量counterVertices爲零。太好了。
然後我繼續打。它會三次出現相同的斷點。
然後我到了第二個斷點。 counterVertices顯示零。爲什麼?
int counterVertices = 0;
int counterIndices = 0;
int beginningOfPolygon = 0;
//GetData
for (auto& it : this->gameObjects) { //Iterate over all gameObjects
beginningOfPolygon = counterIndices;
for (int i = 0; i < it->getOutline().getNumber(); i++) { //Iterate over all points of the gameObject
[(BR)]this->vertices[counterVertices] = it->getRenderPoint(i).x;
counterVertices++;
this->vertices[counterVertices] = it->getRenderPoint(i).y;
counterVertices++;
[(BR)]if (this->vertices[counterVertices-2] == this->vertices[counterVertices-1] && this->vertices[counterVertices-1] == 0.0f) {
cout << "A point on 0/0." << endl;
}
this->vertices[counterVertices] = 0.0f;
counterVertices++;
//Add Line to draw
this->indices[counterIndices * 2] = counterIndices;
this->indices[(counterIndices * 2) + 1] = counterIndices + 1;
counterIndices++;
}
this->indices[(counterIndices * 2) - 1] = beginningOfPolygon;
}
我完全失去了,因爲這甚至不是我想要在第一時間解決,而是就死在試圖找出在我原來的問題的問題。
已經感謝您的時間
PS:我有整個事情截圖和過程是重新創建。我可以清理並重建解決方案,重新啓動並執行後空翻。調試行爲不會改變。
PPS:該程序的行爲/工作方式表明counterVertices正確增加,但調試器信息與此相矛盾。
您是否嘗試過從第一個斷點邁向而不是繼續,看看會發生什麼?我的第一個想法是可能會發生一個異常(如無效索引),它正在try/catch中被捕獲,並將執行從循環中拉出。或者大衛布拉德利剛纔建議的。 – Dronz
是您的源代碼與您的可執行文件同步嗎? –
一步向前邁出正常的一步。繼續前進導致「跳回」?到第一個斷點的路線。我沒有異常處理,也沒有多線程。沒有嘗試/抓住。 – celphy