![PS死機(jī)案例及原因發(fā)現(xiàn)方法淺析課件_第1頁(yè)](http://file4.renrendoc.com/view/b2331a2adf7dce205d1c92046c2213b9/b2331a2adf7dce205d1c92046c2213b91.gif)
![PS死機(jī)案例及原因發(fā)現(xiàn)方法淺析課件_第2頁(yè)](http://file4.renrendoc.com/view/b2331a2adf7dce205d1c92046c2213b9/b2331a2adf7dce205d1c92046c2213b92.gif)
![PS死機(jī)案例及原因發(fā)現(xiàn)方法淺析課件_第3頁(yè)](http://file4.renrendoc.com/view/b2331a2adf7dce205d1c92046c2213b9/b2331a2adf7dce205d1c92046c2213b93.gif)
![PS死機(jī)案例及原因發(fā)現(xiàn)方法淺析課件_第4頁(yè)](http://file4.renrendoc.com/view/b2331a2adf7dce205d1c92046c2213b9/b2331a2adf7dce205d1c92046c2213b94.gif)
![PS死機(jī)案例及原因發(fā)現(xiàn)方法淺析課件_第5頁(yè)](http://file4.renrendoc.com/view/b2331a2adf7dce205d1c92046c2213b9/b2331a2adf7dce205d1c92046c2213b95.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PS死機(jī)案例系統(tǒng)死機(jī)的典型案例取數(shù)據(jù)異常所有中斷均失效只有ARM核運(yùn)行棧溢出,界外數(shù)據(jù)被破壞數(shù)據(jù)越界訪問(wèn)中斷被誤打開(kāi),并沒(méi)有清除中斷不能等到寄存器置位或者清零函數(shù)重入問(wèn)題函數(shù)聲明和實(shí)現(xiàn)的接口不統(tǒng)一雙處理器的同步問(wèn)題取數(shù)據(jù)異常非法指令FunctionA(){…}FunctionB(){Struct*pStr=(Struct*)m_malloc(sizeof(Struct));pStr->pC=A;….m_free(pStr);//不小心free了pStr,這時(shí)候pStr指向的數(shù)據(jù)塊已經(jīng)被其他數(shù)據(jù)所填充….
pStr->pC;//調(diào)用A,但實(shí)際跳轉(zhuǎn)到其他地址,可能進(jìn)入指令預(yù)取異常中斷,或者未定義指令異常中斷,或者程序跑飛(最麻煩的)}所有中斷均失效在607平臺(tái)老的Framework上,有兩個(gè)現(xiàn)象在第一幅開(kāi)機(jī)動(dòng)畫(huà)處死機(jī)反復(fù)播放前一段開(kāi)機(jī)鈴聲任何按鍵沒(méi)有反應(yīng)系統(tǒng)無(wú)任何中斷產(chǎn)生,Melody部?jī)H反復(fù)播放最開(kāi)始送入的Midi數(shù)據(jù),對(duì)用戶來(lái)說(shuō)是“死機(jī)”,實(shí)際是ARM核在bloop()中執(zhí)行有限的幾行代碼。棧溢出,界外數(shù)據(jù)被破壞//#defineSMS_NUM10//UTXXXSMSnumber#defineSMS_NUM50//UTXXXSMSnumber….FunctionA{SMSLogsms[SMS_NUM];//僅僅修改宏定義是不夠的,必須察看與之有關(guān)的所有代碼….memset((void*)sms,0xFF,SMS_NUM*SMS_SiZE);//棧后面可能有其他全局量,被“無(wú)辜”的賦為0xFF….}數(shù)據(jù)越界訪問(wèn)FunctionA{….m=m_malloc(size);…m++;//不小心++,可能是其他方式導(dǎo)致其++…memset((void*)m,0,size);//堆中的數(shù)據(jù)被“無(wú)辜”破壞}數(shù)據(jù)越界訪問(wèn)可以看到,緊挨在m后面的數(shù)據(jù)被無(wú)辜的破壞,導(dǎo)致系統(tǒng)在其他狀態(tài)下“死機(jī)”。所有的賦值語(yǔ)句都要慎重,特別是對(duì)某一地址指向的一段數(shù)據(jù)進(jìn)行賦值的時(shí)候要特別小心。中斷被誤打開(kāi),且沒(méi)有清除中斷如果不需要該時(shí)鐘,那么就要把時(shí)鐘控制寄存器設(shè)置為禁止使能所有中斷是危險(xiǎn)的,必須使能那些需要使能的中斷U32irqs=ReadIntEnableReg();…
WriteIntEnableReg(irqs);使得該時(shí)鐘中斷頻繁進(jìn)入,幾乎完全占用了CPU的MIPS,其他程序沒(méi)有機(jī)會(huì)執(zhí)行,從而表現(xiàn)出“死機(jī)”不能等到寄存器置位或者清零FunctionA{while(1){if((U8)(*BBIO_XXXX_XXXX)==0x01)break;//如果等不到這么辦}}函數(shù)重入的問(wèn)題FunctionA{….*BBIO_XXXX_XXXX|=0x08;//打開(kāi)AD采樣電路while(*BBIO_YYYY_YYYY==0x0b);//采樣完成vol=*BBIO_ZZZZ_ZZZZ;//得到電壓
*BBIO_XXXX_XXXX&=0xF7;//關(guān)閉AD采樣電路}如果函數(shù)c在調(diào)用A時(shí),正在等待采樣完成,被中斷打斷,函數(shù)D調(diào)用了A,完成采樣之后,把采樣電路關(guān)閉了,這樣函數(shù)c就永遠(yuǎn)無(wú)法從A出來(lái)了。函數(shù)重入的問(wèn)題可以在函數(shù)內(nèi)部增加調(diào)試代碼,來(lái)找到重入的證據(jù)也可以在系統(tǒng)級(jí)別避免類似函數(shù)的重入問(wèn)題(避免中斷調(diào)用此函數(shù))如果無(wú)法避免重入,那只好關(guān)中斷了函數(shù)聲明和實(shí)現(xiàn)的接口不統(tǒng)一XXX.hS8A(U8a,LP_U8b,LP_U16c);YYY.hU8A(U8a,LP_U8b,LP_U16c,U16d);XXX.cS8A(U8a,LP_U8b,LP_U16c){…}“死機(jī)”預(yù)防(最重要)絕大部分的“死機(jī)”可以通過(guò)仔細(xì)的設(shè)計(jì)和編碼預(yù)防主動(dòng)設(shè)置“陷阱”,主動(dòng)增加調(diào)試代碼,在任何程序不該進(jìn)入的地方設(shè)置“陷阱”來(lái)“捕獲”它,一旦捕獲有更多的信息來(lái)分析(使用StackInsight工具)在一些看起來(lái)沒(méi)有任何問(wèn)題的地方也要設(shè)置“陷阱”(數(shù)據(jù)越界訪問(wèn)和棧溢出等導(dǎo)致看起來(lái)沒(méi)有問(wèn)題的地方也容易無(wú)辜牽連,這也是“死機(jī)”分析的突破口)“死機(jī)”預(yù)防系統(tǒng)軟件正常運(yùn)行圖系統(tǒng)軟件異常運(yùn)行圖“死機(jī)”預(yù)防主動(dòng)設(shè)置“陷阱”后的圖陷阱“陷阱”就是中止程序正常運(yùn)行的代碼。最常用的就是ASSERT(0);或者軟件中斷或者reset系統(tǒng)(release)“死機(jī)”的“亡羊補(bǔ)牢”“陷阱”處讓系統(tǒng)resetWatchdog“偷偷”地reset#ifdef_DEBUG#defineASSERT(x)DebugAssert(….)#else#defineASSERT(x)(if(FALSE==(U32)x)reset_req())#endif提高“死機(jī)”分析的能力扎實(shí)的基本功(C,匯編,硬件知識(shí),各種儀器使用等)對(duì)系統(tǒng)的充
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度旅游度假合同管理及內(nèi)控風(fēng)險(xiǎn)預(yù)防合同
- 2025年度住宅小區(qū)物業(yè)退場(chǎng)移交與物業(yè)服務(wù)標(biāo)準(zhǔn)提升合同
- 2025年度裝修工程竣工驗(yàn)收?qǐng)?bào)告合同
- 2025年度餐飲管理咨詢項(xiàng)目租賃合同協(xié)議
- 2025年度短視頻影視作品宣傳與版權(quán)合作合同
- 2025年度車(chē)險(xiǎn)人傷調(diào)解與保險(xiǎn)行業(yè)規(guī)范執(zhí)行合同
- 2025年物業(yè)公司員工工作評(píng)價(jià)及勞務(wù)合同
- 2025年度黃金質(zhì)押投資擔(dān)保合同
- 2025年度農(nóng)業(yè)現(xiàn)代化項(xiàng)目貸款連帶擔(dān)保合同
- 2025年度酒店餐飲部服務(wù)員聘用合同及食品安全管理協(xié)議
- 醫(yī)保政策與健康管理培訓(xùn)計(jì)劃
- 2024-2025年校長(zhǎng)在教研組長(zhǎng)和備課組長(zhǎng)會(huì)議上講話
- 高三日語(yǔ)一輪復(fù)習(xí)助詞「で」的用法課件
- 2024-2030年中國(guó)銣銫及其化合物行業(yè)深度調(diào)研及投資戰(zhàn)略分析報(bào)告
- 散貨物流行業(yè)市場(chǎng)調(diào)研分析報(bào)告
- 痛風(fēng)性關(guān)節(jié)炎中醫(yī)護(hù)理查房
- 廚房食材補(bǔ)貨方案
- 2024年重慶市中考數(shù)學(xué)試卷(AB合卷)【附答案】
- 宏觀利率篇:債券市場(chǎng)研究分析框架
- 六年級(jí)語(yǔ)文(上冊(cè))選擇題集錦
- MOOC 材料科學(xué)基礎(chǔ)-西安交通大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論