歡迎來(lái)到培訓(xùn)無(wú)憂(yōu)網(wǎng)!
咨詢(xún)熱線(xiàn) 400-001-5729
>
新聞資訊 >
電腦/IT >
嵌入式開(kāi)發(fā) >
學(xué)習(xí)嵌入式開(kāi)發(fā)會(huì)遇到哪些問(wèn)題?2022-01-11 09:53:03|已瀏覽:2015次
一、問(wèn)題復(fù)現(xiàn)
穩(wěn)定復(fù)現(xiàn)問(wèn)題才能正確的對(duì)問(wèn)題進(jìn)行定位、解決以及驗(yàn)證。一般來(lái)說(shuō),越容易復(fù)現(xiàn)的問(wèn)題越容易解決。
1.1 模擬復(fù)現(xiàn)條件
有的問(wèn)題存在于特定的條件下,只需要模擬出現(xiàn)問(wèn)題的條件即可復(fù)現(xiàn)。對(duì)于依賴(lài)外部輸入的條件,如果條件比較復(fù)雜難以模擬可以考慮程序里預(yù)設(shè)直接進(jìn)入對(duì)應(yīng)狀態(tài)。
1.2 提高相關(guān)任務(wù)執(zhí)行頻率
例如某個(gè)任務(wù)長(zhǎng)時(shí)間運(yùn)行才出現(xiàn)異常則可以提高該任務(wù)的執(zhí)行頻率。
1.3 增大測(cè)試樣本量
程序長(zhǎng)時(shí)間運(yùn)行后出現(xiàn)異常,問(wèn)題難以復(fù)現(xiàn),可以搭建測(cè)試環(huán)境多套設(shè)備同時(shí)進(jìn)行測(cè)試。
二、問(wèn)題定位
縮小排查范圍,確認(rèn)引入問(wèn)題的任務(wù)、函數(shù)、語(yǔ)句。
2.1 打印LOG
根據(jù)問(wèn)題的現(xiàn)象,在抱有疑問(wèn)的代碼處增加LOG輸出,以此來(lái)追蹤程序執(zhí)行流程以及關(guān)鍵變量的值,觀察是否與預(yù)期相符。
2.2 在線(xiàn)調(diào)試
在線(xiàn)調(diào)試可以起到和打印LOG類(lèi)似的作用,另外此方法特別適合排查程序崩潰類(lèi)的BUG,當(dāng)程序陷入異常中斷(HardFault,看門(mén)狗中斷等)的時(shí)候可以直接STOP查看call stack以及內(nèi)核寄存器的值,快速定位問(wèn)題點(diǎn)。
2.3 版本回退
使用版本管理工具時(shí)可以通過(guò)不斷回退版本并測(cè)試驗(yàn)證來(lái)定位首次引入該問(wèn)題的版本,之后可以圍繞該版本增改的代碼進(jìn)行排查。
2.4 二分注釋
二分注釋即以類(lèi)似二分查找法的方式注釋掉部分代碼,以此判斷問(wèn)題是否由注釋掉的這部分代碼引起。
具體方法為將與問(wèn)題不相干的部分代碼注釋掉一半,看問(wèn)題是否解決,未解決則注釋另一半,如果解決則繼續(xù)將注釋范圍縮小一半,以此類(lèi)推逐漸縮小問(wèn)題的范圍。
三、回歸測(cè)試
問(wèn)題解決后需要進(jìn)行回歸測(cè)試,一方面確認(rèn)問(wèn)題是否不再?gòu)?fù)現(xiàn),另一方面要確認(rèn)修改不會(huì)引入其他問(wèn)題。
四、經(jīng)驗(yàn)總結(jié)
總結(jié)本次問(wèn)題產(chǎn)生的原因及解決問(wèn)題的方法,思考類(lèi)似問(wèn)題今后如何防范,對(duì)相同平臺(tái)產(chǎn)品是否值得借鑒,做到舉一反三,從失敗中吸取經(jīng)驗(yàn)。
本文由培訓(xùn)無(wú)憂(yōu)網(wǎng)達(dá)內(nèi)教育課程顧問(wèn)老師整理發(fā)布,更多課程信息可關(guān)注嵌入式開(kāi)發(fā)培訓(xùn)或添加老師微信:15033336050注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://m.dedgn.cn/news-id-14582.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂(yōu)網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注嵌入式開(kāi)發(fā)頻道查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線(xiàn)咨詢(xún)也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050