freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件編程規(guī)范培訓(xùn)實例與練習-wenkub

2023-04-28 02:05:03 本頁面
 

【正文】 ldAtmPort, wAtmDlci, wHdlcPort, wHdlcDlci。 [wCount].wAtmDlci = gFrPVCEP[ bSlotID ][ gFrPVCC[bSlotID][dwCCID].dwHiPVCEP ].dwDLCI。 ...[wCount].bSlotID = bSlotID。 ...}DWORD SaveFrNetExtIWFData ( DWORD *pdwWritePoint ){ BYTE bSlotID。DWORD SaveFrNetIntIWFData ( DWORD *pdwWritePoint ){ BYTE bSlotID, bPeerSlotID。 WORD wHdlcDlci。1 char szLine[80]。此時第一個想法是:在程序處理中,把無符號長整型變量當作短整型變量處理了,為了證實這個判斷,針對17bit/4bytes類型又重新設(shè)計測試用例:(1) 先建PVC,DLCI=65535,然后保存,重起MUX,觀察PVC的恢復(fù)情況,發(fā)現(xiàn)PVC能夠正確恢復(fù);(2)再建PVC,DLCI=65536,然后保存,重起MUX,觀察PVC的恢復(fù)情況,此時PVC不能正確恢復(fù)。因為問題很隱蔽,直接分析海一樣的代碼是很難發(fā)現(xiàn)的。 if ( SPC_STATE_OK == pSpcCBbySpcState ) {。但由于得到 index 后,沒有任何判斷,導(dǎo)致若MNT/MLT端口沒有做半永久,端口激活后,執(zhí)行此部分函數(shù),(PortTable+index)spcNo 有可能為NULL_WORD,于是,運算后,pSpcCB 可能為非法值。仔細比較兩種數(shù)據(jù)的差別,發(fā)現(xiàn)出現(xiàn)主機復(fù)位問題的數(shù)據(jù)中DSL板配置了MNT/MLT端口,但是沒有做DSL端口之間的半永久數(shù)據(jù)。于是將板上所有端口配置為普通2B+D端口,重新加載在主機數(shù)據(jù),現(xiàn)象消失。避免指針的非法引用【】【正 文】在一次測試中,并沒有記得做了什么操作,發(fā)現(xiàn)HONET系統(tǒng)的主機復(fù)位了,之后,系統(tǒng)又工作正常了。 CellNum=。tmp_msg,pMsg,sizeof(tmp_msg))。這個問題給我們教訓(xùn)的是:在直接對內(nèi)存地址進行操作時,一定要保證其值的合法性,否則容易引起內(nèi)存操作越界,給系統(tǒng)的穩(wěn)定性帶來潛在的威脅。 i MAX_DB_NUM。而pDBFat是數(shù)據(jù)庫的起始地址,如果pSysHeaddbf_count值異常過大,將導(dǎo)致pDBFat值超過最大內(nèi)存地址值,隨后進行的內(nèi)存操作將導(dǎo)致內(nèi)存操作越界錯誤,因而在測試過程中數(shù)據(jù)庫破壞后就出現(xiàn)了主機死機的現(xiàn)象。13 filesize = pDBFatdbf_fsize。8 continue。 ipSysHeaddbf_count?!尽俊菊? 文】 在接入網(wǎng)產(chǎn)品A測試中,在內(nèi)存數(shù)據(jù)庫正常的情況下的各種數(shù)據(jù)庫方面的操作都是正常的。處理過程: 與開發(fā)人員在測試組環(huán)境多次重復(fù)以上步驟,發(fā)現(xiàn)11群的計次表話單有時正常,有時其出中繼群號就為一個隨機值,發(fā)生異常的頻率比較高。對于中繼的業(yè)務(wù),則要充分考慮各種信令:TUP、ISUP、PRA、NOV5等等。 結(jié) 論: 代碼編寫有誤。而在我們交換機的程序中大量使用指針,并且有增無減。因此,以后使用的可能是一個非法指針。ul_card_config_num, amp。操作符第17頁【】第17頁注意數(shù)據(jù)類型的匹配第18頁【】第18頁【】第18頁用于控制條件轉(zhuǎn)移的表達式及取值范圍是否書寫正確第20頁【】第20頁【】第21頁【】第22頁條件分支處理是否有遺漏第24頁【】第24頁引用已釋放的資源第26頁【】第26頁分配資源是否已正確釋放第28頁【】第28頁【】第29頁【】第30頁【】第32頁【】第33頁【】第35頁【】第38頁1防止資源的重復(fù)釋放第39頁【】第39頁1公共資源的互斥性和競用性第40頁【】第40頁【】第40頁二、接口類代碼問題第43頁對函數(shù)參數(shù)進行有效性檢查第43頁【】第43頁【】第43頁【】第44頁【】第46頁【】第47頁【】第48頁注意多出口函數(shù)的處理第49頁【】第49頁三、維護類代碼問題第51頁 統(tǒng)一枚舉類型的使用第51頁【】第51頁 注釋量至少占代碼總量的20%第51頁【】對XXX產(chǎn)品BAM某版本部分代碼注釋量的統(tǒng)計第51頁四、產(chǎn)品兼容性問題第52頁系統(tǒng)配置、命令方式第52頁【】第52頁【】第53頁設(shè)備對接第54頁【】第54頁其他第55頁【】第55頁五、版本控制問題第58頁新老代碼中同一全局變量不一致第58頁【】第58頁六、可測試性代碼問題第59頁調(diào)試信息/打印信息的正確性第59頁【】第59頁 一、邏輯類代碼問題變量/指針在使用前就必須初始化【】 C語言中最大的特色就是指針。? 處罰辦法 問題發(fā)生率: P=D/S D=DA++ 其中: P -問題發(fā)生率 D -1個季度內(nèi)錯誤總數(shù) DA -1個季度內(nèi)A類錯誤總數(shù) DB -1個季度內(nèi)B類錯誤總數(shù) DC -1個季度內(nèi)C類錯誤總數(shù) S -1個季度內(nèi)收到問題報告單總數(shù) 1)當D≥3時,如果P≥3%,將進行警告處理,并予以公告; 2)當D≥5時,如果P≥5%,將進行罰款處理,并予以公告。 目 錄一、邏輯類代碼問題第5頁變量/指針在使用前就必須初始化第5頁【】第5頁防止指針/數(shù)組操作越界第5頁【】第5頁【】第6頁【】第7頁【】第8頁避免指針的非法引用第9頁【】第9頁變量類型定義錯誤第10頁【】第10頁正確使用邏輯與amp。指針的使用具有很強的技巧性和靈活性,但同時也帶來了很大的危險性。puc_card_config_tab, use_which_data_area )。指針的使用是非常靈活的,同時也存在危險性,必須小心使用。防止指針/數(shù)組操作越界【】 在香港項目測試中,發(fā)現(xiàn)ISDN話機撥新業(yè)務(wù)號碼時,若一位一位的撥至18位,不會有問題。思考與啟示: 極限測試必須注意,測試前應(yīng)對某項設(shè)計的極限做好充分測試規(guī)劃?!尽?對某交換類進行計費測試,字冠011對應(yīng)1號路由、1號子路由,有4個中繼群11,12,13,14(都屬于1模塊),前后兩個群分別構(gòu)成自環(huán)。為什么其它群的話單正常,唯獨11群不正常呢?11群是四個群中最小的群,其中繼計次表位于緩沖區(qū)的首位,打完電話后查詢內(nèi)存發(fā)現(xiàn)出中繼群號在內(nèi)存中是正確的,取完話單后再查就不正確了。為了進行數(shù)據(jù)庫異常測試,于是將數(shù)據(jù)庫內(nèi)容人為地破壞了。 i++)2 {3 pDBFat = (_NM_DBFAT_STRUC *)(NVDB_BASE + DBFAT_OFFSET + i*DBFAT_LEN)。9 }10 if(strlen(dbfdbf_name) != 0 amp。14 break。 上面的問題解決起來很容易,只需在第一行代碼中增加一個判斷條件即可,如下: for(i=0。 i++) // MAX_DB_NUM=127 這樣就保證了循環(huán)變量i的值在正常范圍內(nèi),從而避免了對指針pDBFat進行內(nèi)存越界的操作。 【】 近日在CDB并行測試中發(fā)現(xiàn)一個問題:我們需要的小區(qū)負荷話統(tǒng)結(jié)果總是為零,開始還以為小區(qū)負荷太小,于是加大短消息下發(fā)數(shù)量,但還為零,于是在程序中加入測試代碼,把收到的數(shù)據(jù)在BAM上打印出來, 結(jié)果打印出來的數(shù)據(jù)正常,不可能為零,仔細查看相關(guān)代碼,問題只可能在指針移位上有問題,果然在函數(shù)中發(fā)現(xiàn)一處比較隱蔽的錯誤。 pMsg=pMsg+sizeof(tmp_msg)。 。由于沒有打開后臺的跟蹤窗口,當時查了半天沒有眉目。于是初步定位為主機在DSL端口處理過程中有重大錯誤。于是在程序中不斷加打印語句,通過后臺的DBWIN調(diào)試程序跟蹤,最后終于定位為:()函數(shù)中處理U口透傳的if ( SPC_STATE_OK == pSpcCBbySpcState )語句時,主機復(fù)位。此時主機在取進行判斷,就不知會導(dǎo)致什么后果了。}} 修改后,問題不再重現(xiàn)。變量類型定義錯誤【】【正 文】 在FRI板上建幾條FRPVC,其DLCI類型分別為:10Bit/2bytes、10bit/3bytes、16bit/3bytes、17bit/4bytes、23bit/4bytes。至此基本可以斷定原因就是出在這里。 ID LowPVCEP。 WORD wPeerHdlcDlci。 DWORD dwCCID, dwPeerCCID。 DWORD dwCCID, dwPeerCCID。 [wCount].wHdlcPort = wHdlcPort。 [wCount].dwMapMode = gFrPVCC[bSlotID][dwCCID].dwMapMode。 DWORD dwMapMode, dwCIR, dwBe。 DWORD dwCCID, dwPeerCCID, dwAtmPort, dwPeerAtmPort。 WORD wPeerHdlcPort, wPeerOldAtmPort。 另一個問題是為什么23/4類型的DLCI數(shù)據(jù)不能恢復(fù)?這是由于對于23/4類型的PVC,其DLCI的取值范圍為:131072~4194303,而程序強制轉(zhuǎn)換并恢復(fù)的數(shù)據(jù)最大只能是65535,所以這條PVC不能恢復(fù)。相應(yīng)的DLCI值為:12399126971234567,然后保存,重起MUX,觀察PVC的恢復(fù)情況,結(jié)果DLCI值為1234和991的PVC正確恢復(fù),而DLCI=126975的PVC恢復(fù)的數(shù)據(jù)錯誤為61439,而DLCI=1234567的PVC完全沒有恢復(fù)。帶著這個目的查看原代碼,發(fā)現(xiàn)在以下代碼中有問題:int _GetFrDlci( DWORD* dwDlci, char* str, DWORD dwDlciType, DWORD dwPortType, DWORD dwSlotID, DWORD dwPortID){ DWORD tempDlci。 DWORD dwDlciVal[5][2] = { {16,1007}, {16,1007}, {1024,64511}, {2048,129023}, {131072,4194303} } 。 WORD wPeerOldAtmPort。 WORD wHdlcPort, wAtmPort, wIci, wPeerIci, wPeerHdlcPort 。 WORD wHdlcPort, wAtmPort, wIci 。 [wCount].wHdlcDlci = gFrPVCEP[bSlotID ][ gFrPVCC[bSlotID][dwCCID].dwLoPVCEP ].dwDLCI。    ?。? }DWORD RestoreFrNetExtIWFData ( WORD wSlotID, BYTE *pReadPoint ){ WORD wCount, wTotalNetIWF。 DWORD dwCCID, dwResult, dwAtmPort。 DWORD dwResult。 ...} 其中涉及DLCI值的變量都為WORD(即無符號短整型)類型,在程序的處理時,出現(xiàn)WORD和DWORD(無符號長整型)類型在一句中同時存在的情況,至此可以判斷問題出在這里。 至此,DLCI數(shù)據(jù)恢復(fù)出錯的原因完全找到,解決的方法是將DLCI的類型改為DWORD類型。、屏蔽amp。在函數(shù)L2_TO_L1()中,有如下語句: linkstate_ptr = (head + 1) % W_MOD 。第一個語句求欲重發(fā)的消息包個數(shù),第二個語句求重發(fā)的起始位置,當Vs小于n_r時,將造成實際重發(fā)數(shù)小于欲重發(fā)數(shù),同時造成實際起始重發(fā)位置和欲重發(fā)起始位置錯開,從而引起鏈路復(fù)位。 MOD128 。)和求模(%)這小小的區(qū)別,造成的竟是鏈路復(fù)位這種嚴重的錯誤。 首先試BSN參數(shù)越界情況,即參數(shù)BSN超過32路查詢,選了幾個數(shù)據(jù)段,問題就出來了。amp?!窘Y(jié) 論】 為數(shù)據(jù)超出范圍溢出造成,int值賦值給BYTE,造成數(shù)據(jù)丟失。TUP也會產(chǎn)生如此錯誤。
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1