版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上程序常見嚴(yán)重Bug(程序穩(wěn)定性)(技術(shù)研發(fā)中心整理)1、 死循環(huán)int pos = RandomInt(qc-qacount); if(MenuItempos.size() != 0) pos = (pos+1) %(qc-qacount); while(MenuItempos.size() != 0) pos = (pos+1) %(qc-qacount);原因:while循環(huán)在特殊邏輯下無法退出。 for(int i = 0; i n; i +) . i -; .原因:循環(huán)控制變量i出現(xiàn)了自減,導(dǎo)致死循環(huán)。2、 數(shù)組越界保護(hù) int GetVectorData(i
2、nt index) if(index = m_DataVct.size() return 0; return m_DataVctindex;原因:在沒有判斷(index = m_DataVct.size()的情況下,數(shù)組m_DataVctindex可能會越界訪問。 for ( int i = 0; i (int)collectItemList.size(); i+ )vector npcIds = collectItemListi.npcIds;for ( size_t j = 0; j GetScene() ); 原因:npcIdsi應(yīng)該是npcIdsj才對。3、 map查找越界hash_m
3、ap :const_iterator it = hashmap_PropGroups.find(groupid);if (it = hashmap_PropGroups.end()return false;const S_PROPGROUP_ITEM & propgroup = (*it).second;原因:在沒有判斷it = hashmap_PropGroups.end()的情況下it為結(jié)束,(*it).second訪問出錯。4、 公共數(shù)據(jù)號加鎖 int space_index = pKernel-GetPubSpaceIndex( competeinfo_spacename.c_str(
4、) );if ( space_index FindPubRec( space_index, point_recname.c_str() ) )return false;/加鎖BEGIN_LOCK_PUBSPACE(space_index);原因:在通過GetPubSpaceIndex函數(shù)調(diào)用的情況下space_index必須判斷是否存在,否則導(dǎo)致后續(xù)操作和加鎖失敗。5、 公共數(shù)據(jù)加鎖解鎖 /加鎖BEGIN_LOCK_PUBSPACE(space_index); /競技場的出生點if ( ! pKernel-FindPubData(space_index, WaitSceneBorn) )pKe
5、rnel-AddPubData(space_index, WaitSceneBorn, VARTYPE_STRING);pKernel-SetPubDataSave(space_index, WaitSceneBorn, false); return false; /錯誤,沒有解鎖就返回了 /解鎖END_LOCK_PUBSPACE( space_index );原因:在進(jìn)行了公共數(shù)據(jù)加鎖后必須進(jìn)行解鎖操作,否則導(dǎo)致后續(xù)加鎖失敗。6、 除0int m = 100/vecItems.size();原因:在進(jìn)行除法運(yùn)算時沒有判斷vecItems.size(),導(dǎo)致除零錯誤。7、 取模0 int n
6、= 100%vecItems.size() 原因:在進(jìn)行取模運(yùn)算時沒有判斷vecItems.size(),導(dǎo)致錯誤。8、 空指針判斷 void SetString(char *pStr) string str = pStr;原因:沒有判斷pStr是否為空,在給string對象賦值時導(dǎo)致當(dāng)機(jī)。 void SetData(const SMyData *pData) int n = pData-iValue; 原因:與上類似。9、 變量沒有初始化 int width,height; . .CRect rect(width,height);原因:在Debug模式下變量都會被初始化為0,但在Releas
7、e模式下變量的初始值為隨機(jī)值,容易導(dǎo)致程序在發(fā)布后出現(xiàn)詭異Bug。10、 函數(shù)遞歸調(diào)用 void FunctionA() if(.) FunctionB(); void FunctionB() if(.) FunctionA(); 原因:在一定條件下FunctionA和FunctionB會相互調(diào)用,無法退出,導(dǎo)致堆棧被耗盡而當(dāng)機(jī)。 void FunctionA() if(.) FunctionA(); else return ; 原因:在遞歸深度超過一定限制時,導(dǎo)致堆棧被耗盡而當(dāng)機(jī)。11、 復(fù)雜的STL操作(跨線程STL操作) vector g_DataVect;/全局資源數(shù)組 void Fu
8、nctionA() g_DataVect.reserve(100);原因:禁止在程序運(yùn)行時寫操作全局?jǐn)?shù)據(jù),禁止程序運(yùn)行時使用復(fù)雜的STL函數(shù)。12、 內(nèi)存丟失(內(nèi)存亂使用) CMyClass *pObject = new CMyClass(); . if(.) return; /錯誤,沒有釋放就返回了。 . delete pObject; 原因:給對象pObject分配了內(nèi)存空間,但是在返回前沒有釋放,導(dǎo)致內(nèi)存丟失。 不論是客戶端還是服務(wù)器都禁止在運(yùn)行過程中隨意的使用動態(tài)內(nèi)存。13、 內(nèi)存越界操作 char sStr10;.sStr11 = s;或者:strcpy(sStr,“123”);原因:sStr只有10個字節(jié)長度,但是卻對11個元素進(jìn)行操作,導(dǎo)致其他內(nèi)存數(shù)據(jù)被改寫。14、 浮點數(shù)等于判斷 float fVal = 1.0f; . if (fVal = 1.0f) .原因:fVal = 1.0f后可能精度丟失,變?yōu)?.99999f,所以后面判斷(fVal = 1.0f)不成立,導(dǎo)致詭異錯誤(隨機(jī)的)。15、 靜態(tài)變量使用 Void PushTemp() static NodeList tmpList; while ( 1 ) tmpList.push_front ( pNode ); . break; 原因:靜態(tài)變量與全局變量類似,在多線程下會造成多個線
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《電氣控制與PLC控制技術(shù)B》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東酒店管理職業(yè)技術(shù)學(xué)院《建筑設(shè)計A(六)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《市政管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《虛擬互動技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《學(xué)前教育發(fā)展前沿專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 《創(chuàng)投基金推介》課件
- 護(hù)理服務(wù)與安全課件
- 《職業(yè)精神解讀》課件
- 《膳食與營養(yǎng)婦科》課件
- 贛州師范高等??茖W(xué)校《教育技術(shù)在中學(xué)化學(xué)教學(xué)中的應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 眼科手術(shù)圍手術(shù)期的護(hù)理
- 2023年MC工程師年度總結(jié)及下一年計劃
- 超星-《突發(fā)事件及自救互救》-期末考試
- 2023年人力資源銷售專員年度總結(jié)及下一年規(guī)劃
- 中樞神經(jīng)系統(tǒng)的解剖與功能
- 2020年0822海南公務(wù)員考試《行測》真題及參考答案解析
- 員工調(diào)崗調(diào)薪申請表
- 《鋁及鋁合金薄板變形量及殘余應(yīng)力測試方法 切縫翹曲法》
- 小學(xué)科學(xué)蘇教版四年級上冊全冊教學(xué)反思(2023秋新課標(biāo)版)
- 診所污水污物糞便處理方案及周邊環(huán)境
- 產(chǎn)品報價單(5篇)
評論
0/150
提交評論