走出塊考慮此代碼:避免在Visual C++ 2008
std::vector<myObject*> veryLargeArray;
for (int i = 0; i < veryLargeArray.size(); ++i)
{
param_type* currParams = veryLargeArray[i]->GetParams<param_type>();
currParams->phi = /* some complex formula */;
}
我怎麼會介入該代碼,這樣我知道答案被存儲在phi
之前在循環開始的另一次迭代這將有效摧毀currParams
,並有機會在調試器中看到它的值?
我常常遇到這種情況,我的解決方案是重新編譯代碼,方法是在塊末尾放置一個虛擬變量,然後我將中斷或通過值數組,有時可能會很大,以至於我可以看到存儲了什麼值,或者可能需要額外的工作才能將存儲的param_type
轉換爲正確的對象。這兩種解決方案都不理想,因爲第一個引入了警告(將其視爲錯誤,在這種情況下,我必須設置每個文件規則)以及重新編譯代碼,這兩種方法我都想避免,而第二種方法浪費時間。
¤在分配上放置一個斷點,然後逐步完成。或者如果Visual C++支持,但是在右大括號處有斷點。雖然我從來沒有用過,但我相信你可以在斷點處添加一個* data condition *,例如您感興趣的「i」的某些特定值 - 請查看。乾杯&hth。, –
沒有很好的解決方案,我知道。在這種情況下,我在機器代碼中設置了一個斷點。 –
@ AlfP.Steinbach,所有優秀的解決方案,你一定能夠在VS中使用它們。爲此,我將補充一點,你可以將一個動作與一個斷點關聯起來,該斷點將在每次迭代中將「phi」的值寫入調試輸出。 – shambulator