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

正文內(nèi)容

軟件編程規(guī)范培訓(xùn)實(shí)例及相關(guān)練習(xí)-wenkub

2023-04-28 02:05:05 本頁(yè)面
 

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