某天, 發(fā)現(xiàn)一個bug, 會導致release版本下異常, 但在debug版本下正常, 可以定位該bug在下面代碼中:
void CMoveHandlerStateDraw::OnLButtonUp(UINT nFlags, CPoint point)
{

AdjustPoint(point);
m_pHandler->Drop(point, m_ptHandlerPos);

}
但是,一旦往這個函數(shù)中插入用來dump數(shù)據(jù)的代碼, bug就不再出現(xiàn), 不論是將數(shù)據(jù)寫到文件還是顯示在messagebox上。
啟用release版本的"Debug Information", bug也不再出現(xiàn)。
就算只是在
該函數(shù)中聲明一個CString變量, 這個狡猾的bug似乎馬上就知道,馬上就藏起來, 把這個變量一去掉, 它馬上又跑出來了。
但后來發(fā)現(xiàn), 這只是一只很普通的bug,根本沒什么超能力。
聰明的你,知道這是為什么嗎?